.class public final Lkotlin/sequences/ConstrainedOnceSequence; .super Ljava/lang/Object; .source "SourceFile" # interfaces .implements Lkotlin/sequences/Sequence; # instance fields .field public final sequenceRef:Ljava/util/concurrent/atomic/AtomicReference; # direct methods .method public constructor (Lkotlin/sequences/Sequence;)V .locals 1 const-string v0, "sequence" invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNullParameter(Ljava/lang/Object;Ljava/lang/String;)V .line 19 invoke-direct {p0}, Ljava/lang/Object;->()V .line 20 new-instance v0, Ljava/util/concurrent/atomic/AtomicReference; invoke-direct {v0, p1}, Ljava/util/concurrent/atomic/AtomicReference;->(Ljava/lang/Object;)V iput-object v0, p0, Lkotlin/sequences/ConstrainedOnceSequence;->sequenceRef:Ljava/util/concurrent/atomic/AtomicReference; return-void .end method # virtual methods .method public iterator()Ljava/util/Iterator; .locals 2 iget-object v0, p0, Lkotlin/sequences/ConstrainedOnceSequence;->sequenceRef:Ljava/util/concurrent/atomic/AtomicReference; const/4 v1, 0x0 .line 23 invoke-virtual {v0, v1}, Ljava/util/concurrent/atomic/AtomicReference;->getAndSet(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v0 check-cast v0, Lkotlin/sequences/Sequence; if-eqz v0, :cond_0 .line 24 invoke-interface {v0}, Lkotlin/sequences/Sequence;->iterator()Ljava/util/Iterator; move-result-object v0 return-object v0 .line 23 :cond_0 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "This sequence can be consumed only once." invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V throw v0 .end method