.class final Lkotlin/sequences/SequenceBuilderIterator; .super Lkotlin/sequences/SequenceScope; .source "SequenceBuilder.kt" # interfaces .implements Ljava/util/Iterator; .implements Lkotlin/coroutines/Continuation; .implements Lkotlin/jvm/internal/markers/KMappedMarker; # annotations .annotation system Ldalvik/annotation/Signature; value = { "", "Lkotlin/sequences/SequenceScope<", "TT;>;", "Ljava/util/Iterator<", "TT;>;", "Lkotlin/coroutines/Continuation<", "Lkotlin/Unit;", ">;", "Lkotlin/jvm/internal/markers/KMappedMarker;" } .end annotation .annotation runtime Lkotlin/Metadata; d1 = { "\u0000B\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\u0010(\n\u0002\u0018\u0002\n\u0002\u0010\u0002\n\u0002\u0008\u0002\n\u0002\u0018\u0002\n\u0002\u0008\u000b\n\u0002\u0010\u0008\n\u0002\u0018\u0002\n\u0000\n\u0002\u0010\u0003\n\u0000\n\u0002\u0010\u000b\n\u0002\u0008\u0005\n\u0002\u0018\u0002\n\u0002\u0008\u0008\u0008\u0002\u0018\u0000*\u0004\u0008\u0000\u0010\u00012\u0008\u0012\u0004\u0012\u0002H\u00010\u00022\u0008\u0012\u0004\u0012\u0002H\u00010\u00032\u0008\u0012\u0004\u0012\u00020\u00050\u0004B\u0005\u00a2\u0006\u0002\u0010\u0006J\u0008\u0010\u0016\u001a\u00020\u0017H\u0002J\t\u0010\u0018\u001a\u00020\u0019H\u0096\u0002J\u000e\u0010\u001a\u001a\u00028\u0000H\u0096\u0002\u00a2\u0006\u0002\u0010\u001bJ\r\u0010\u001c\u001a\u00028\u0000H\u0002\u00a2\u0006\u0002\u0010\u001bJ\u001e\u0010\u001d\u001a\u00020\u00052\u000c\u0010\u001e\u001a\u0008\u0012\u0004\u0012\u00020\u00050\u001fH\u0016\u00f8\u0001\u0000\u00a2\u0006\u0002\u0010 J\u0019\u0010!\u001a\u00020\u00052\u0006\u0010\"\u001a\u00028\u0000H\u0096@\u00f8\u0001\u0000\u00a2\u0006\u0002\u0010#J\u001f\u0010$\u001a\u00020\u00052\u000c\u0010%\u001a\u0008\u0012\u0004\u0012\u00028\u00000\u0003H\u0096@\u00f8\u0001\u0000\u00a2\u0006\u0002\u0010&R\u0014\u0010\u0007\u001a\u00020\u00088VX\u0096\u0004\u00a2\u0006\u0006\u001a\u0004\u0008\t\u0010\nR\u0016\u0010\u000b\u001a\n\u0012\u0004\u0012\u00028\u0000\u0018\u00010\u0003X\u0082\u000e\u00a2\u0006\u0002\n\u0000R\"\u0010\u000c\u001a\n\u0012\u0004\u0012\u00020\u0005\u0018\u00010\u0004X\u0086\u000e\u00a2\u0006\u000e\n\u0000\u001a\u0004\u0008\r\u0010\u000e\"\u0004\u0008\u000f\u0010\u0010R\u0012\u0010\u0011\u001a\u0004\u0018\u00018\u0000X\u0082\u000e\u00a2\u0006\u0004\n\u0002\u0010\u0012R\u0012\u0010\u0013\u001a\u00060\u0014j\u0002`\u0015X\u0082\u000e\u00a2\u0006\u0002\n\u0000\u0082\u0002\u0004\n\u0002\u0008\u0019\u00a8\u0006\'" } d2 = { "Lkotlin/sequences/SequenceBuilderIterator;", "T", "Lkotlin/sequences/SequenceScope;", "", "Lkotlin/coroutines/Continuation;", "", "()V", "context", "Lkotlin/coroutines/CoroutineContext;", "getContext", "()Lkotlin/coroutines/CoroutineContext;", "nextIterator", "nextStep", "getNextStep", "()Lkotlin/coroutines/Continuation;", "setNextStep", "(Lkotlin/coroutines/Continuation;)V", "nextValue", "Ljava/lang/Object;", "state", "", "Lkotlin/sequences/State;", "exceptionalState", "", "hasNext", "", "next", "()Ljava/lang/Object;", "nextNotReady", "resumeWith", "result", "Lkotlin/Result;", "(Ljava/lang/Object;)V", "yield", "value", "(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "yieldAll", "iterator", "(Ljava/util/Iterator;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "kotlin-stdlib" } k = 0x1 mv = { 0x1, 0x5, 0x1 } .end annotation # instance fields .field private nextIterator:Ljava/util/Iterator; .annotation system Ldalvik/annotation/Signature; value = { "Ljava/util/Iterator<", "+TT;>;" } .end annotation .end field .field private nextStep:Lkotlin/coroutines/Continuation; .annotation system Ldalvik/annotation/Signature; value = { "Lkotlin/coroutines/Continuation<", "-", "Lkotlin/Unit;", ">;" } .end annotation .end field .field private nextValue:Ljava/lang/Object; .annotation system Ldalvik/annotation/Signature; value = { "TT;" } .end annotation .end field .field private state:I # direct methods .method public constructor ()V .registers 1 .line 115 invoke-direct {p0}, Lkotlin/sequences/SequenceScope;->()V return-void .end method .method private final exceptionalState()Ljava/lang/Throwable; .registers 4 .line 166 iget v0, p0, Lkotlin/sequences/SequenceBuilderIterator;->state:I const/4 v1, 0x4 if-eq v0, v1, :cond_2b const/4 v1, 0x5 if-eq v0, v1, :cond_21 .line 169 new-instance v0, Ljava/lang/IllegalStateException; new-instance v1, Ljava/lang/StringBuilder; const-string v2, "Unexpected state of the iterator: " invoke-direct {v1, v2}, Ljava/lang/StringBuilder;->(Ljava/lang/String;)V iget v2, p0, Lkotlin/sequences/SequenceBuilderIterator;->state:I invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder; move-result-object v1 invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String; move-result-object v1 invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V check-cast v0, Ljava/lang/Throwable; goto :goto_32 .line 168 :cond_21 new-instance v0, Ljava/lang/IllegalStateException; const-string v1, "Iterator has failed." invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;->(Ljava/lang/String;)V check-cast v0, Ljava/lang/Throwable; goto :goto_32 .line 167 :cond_2b new-instance v0, Ljava/util/NoSuchElementException; invoke-direct {v0}, Ljava/util/NoSuchElementException;->()V check-cast v0, Ljava/lang/Throwable; :goto_32 return-object v0 .end method .method private final nextNotReady()Ljava/lang/Object; .registers 2 .annotation system Ldalvik/annotation/Signature; value = { "()TT;" } .end annotation .line 163 invoke-virtual {p0}, Lkotlin/sequences/SequenceBuilderIterator;->hasNext()Z move-result v0 if-eqz v0, :cond_b invoke-virtual {p0}, Lkotlin/sequences/SequenceBuilderIterator;->next()Ljava/lang/Object; move-result-object v0 return-object v0 :cond_b new-instance v0, Ljava/util/NoSuchElementException; invoke-direct {v0}, Ljava/util/NoSuchElementException;->()V check-cast v0, Ljava/lang/Throwable; throw v0 .end method # virtual methods .method public getContext()Lkotlin/coroutines/CoroutineContext; .registers 2 .line 199 sget-object v0, Lkotlin/coroutines/EmptyCoroutineContext;->INSTANCE:Lkotlin/coroutines/EmptyCoroutineContext; check-cast v0, Lkotlin/coroutines/CoroutineContext; return-object v0 .end method .method public final getNextStep()Lkotlin/coroutines/Continuation; .registers 2 .annotation system Ldalvik/annotation/Signature; value = { "()", "Lkotlin/coroutines/Continuation<", "Lkotlin/Unit;", ">;" } .end annotation .line 119 iget-object v0, p0, Lkotlin/sequences/SequenceBuilderIterator;->nextStep:Lkotlin/coroutines/Continuation; return-object v0 .end method .method public hasNext()Z .registers 5 .line 123 :goto_0 iget v0, p0, Lkotlin/sequences/SequenceBuilderIterator;->state:I const/4 v1, 0x0 if-eqz v0, :cond_2c const/4 v2, 0x2 const/4 v3, 0x1 if-eq v0, v3, :cond_19 if-eq v0, v2, :cond_18 const/4 v1, 0x3 if-eq v0, v1, :cond_18 const/4 v1, 0x4 if-ne v0, v1, :cond_13 const/4 v0, 0x0 return v0 .line 134 :cond_13 invoke-direct {p0}, Lkotlin/sequences/SequenceBuilderIterator;->exceptionalState()Ljava/lang/Throwable; move-result-object v0 throw v0 :cond_18 return v3 .line 126 :cond_19 iget-object v0, p0, Lkotlin/sequences/SequenceBuilderIterator;->nextIterator:Ljava/util/Iterator; invoke-static {v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V invoke-interface {v0}, Ljava/util/Iterator;->hasNext()Z move-result v0 if-eqz v0, :cond_27 .line 127 iput v2, p0, Lkotlin/sequences/SequenceBuilderIterator;->state:I return v3 .line 130 :cond_27 move-object v0, v1 check-cast v0, Ljava/util/Iterator; iput-object v1, p0, Lkotlin/sequences/SequenceBuilderIterator;->nextIterator:Ljava/util/Iterator; :cond_2c const/4 v0, 0x5 .line 137 iput v0, p0, Lkotlin/sequences/SequenceBuilderIterator;->state:I .line 138 iget-object v0, p0, Lkotlin/sequences/SequenceBuilderIterator;->nextStep:Lkotlin/coroutines/Continuation; invoke-static {v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V .line 139 move-object v2, v1 check-cast v2, Lkotlin/coroutines/Continuation; iput-object v1, p0, Lkotlin/sequences/SequenceBuilderIterator;->nextStep:Lkotlin/coroutines/Continuation; .line 140 sget-object v1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; sget-object v2, Lkotlin/Result;->Companion:Lkotlin/Result$Companion; invoke-static {v1}, Lkotlin/Result;->constructor-impl(Ljava/lang/Object;)Ljava/lang/Object; move-result-object v1 invoke-interface {v0, v1}, Lkotlin/coroutines/Continuation;->resumeWith(Ljava/lang/Object;)V goto :goto_0 .end method .method public next()Ljava/lang/Object; .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "()TT;" } .end annotation .line 145 iget v0, p0, Lkotlin/sequences/SequenceBuilderIterator;->state:I if-eqz v0, :cond_27 const/4 v1, 0x1 if-eq v0, v1, :cond_27 const/4 v2, 0x2 if-eq v0, v2, :cond_1b const/4 v1, 0x3 if-ne v0, v1, :cond_16 const/4 v0, 0x0 .line 152 iput v0, p0, Lkotlin/sequences/SequenceBuilderIterator;->state:I .line 154 iget-object v0, p0, Lkotlin/sequences/SequenceBuilderIterator;->nextValue:Ljava/lang/Object; const/4 v1, 0x0 .line 155 iput-object v1, p0, Lkotlin/sequences/SequenceBuilderIterator;->nextValue:Ljava/lang/Object; return-object v0 .line 158 :cond_16 invoke-direct {p0}, Lkotlin/sequences/SequenceBuilderIterator;->exceptionalState()Ljava/lang/Throwable; move-result-object v0 throw v0 .line 148 :cond_1b iput v1, p0, Lkotlin/sequences/SequenceBuilderIterator;->state:I .line 149 iget-object v0, p0, Lkotlin/sequences/SequenceBuilderIterator;->nextIterator:Ljava/util/Iterator; invoke-static {v0}, Lkotlin/jvm/internal/Intrinsics;->checkNotNull(Ljava/lang/Object;)V invoke-interface {v0}, Ljava/util/Iterator;->next()Ljava/lang/Object; move-result-object v0 return-object v0 .line 146 :cond_27 invoke-direct {p0}, Lkotlin/sequences/SequenceBuilderIterator;->nextNotReady()Ljava/lang/Object; move-result-object v0 return-object v0 .end method .method public remove()V .registers 3 new-instance v0, Ljava/lang/UnsupportedOperationException; const-string v1, "Operation is not supported for read-only collection" invoke-direct {v0, v1}, Ljava/lang/UnsupportedOperationException;->(Ljava/lang/String;)V throw v0 .end method .method public resumeWith(Ljava/lang/Object;)V .registers 2 .line 194 invoke-static {p1}, Lkotlin/ResultKt;->throwOnFailure(Ljava/lang/Object;)V const/4 p1, 0x4 .line 195 iput p1, p0, Lkotlin/sequences/SequenceBuilderIterator;->state:I return-void .end method .method public final setNextStep(Lkotlin/coroutines/Continuation;)V .registers 2 .annotation system Ldalvik/annotation/Signature; value = { "(", "Lkotlin/coroutines/Continuation<", "-", "Lkotlin/Unit;", ">;)V" } .end annotation .line 119 iput-object p1, p0, Lkotlin/sequences/SequenceBuilderIterator;->nextStep:Lkotlin/coroutines/Continuation; return-void .end method .method public yield(Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(TT;", "Lkotlin/coroutines/Continuation<", "-", "Lkotlin/Unit;", ">;)", "Ljava/lang/Object;" } .end annotation .line 174 iput-object p1, p0, Lkotlin/sequences/SequenceBuilderIterator;->nextValue:Ljava/lang/Object; const/4 p1, 0x3 .line 175 iput p1, p0, Lkotlin/sequences/SequenceBuilderIterator;->state:I .line 177 iput-object p2, p0, Lkotlin/sequences/SequenceBuilderIterator;->nextStep:Lkotlin/coroutines/Continuation; .line 178 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object p1 .line 176 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object v0 if-ne p1, v0, :cond_14 invoke-static {p2}, Lkotlin/coroutines/jvm/internal/DebugProbesKt;->probeCoroutineSuspended(Lkotlin/coroutines/Continuation;)V :cond_14 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object p2 if-ne p1, p2, :cond_1b return-object p1 :cond_1b sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; return-object p1 .end method .method public yieldAll(Ljava/util/Iterator;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; .registers 4 .annotation system Ldalvik/annotation/Signature; value = { "(", "Ljava/util/Iterator<", "+TT;>;", "Lkotlin/coroutines/Continuation<", "-", "Lkotlin/Unit;", ">;)", "Ljava/lang/Object;" } .end annotation .line 183 invoke-interface {p1}, Ljava/util/Iterator;->hasNext()Z move-result v0 if-nez v0, :cond_9 sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; return-object p1 .line 184 :cond_9 iput-object p1, p0, Lkotlin/sequences/SequenceBuilderIterator;->nextIterator:Ljava/util/Iterator; const/4 p1, 0x2 .line 185 iput p1, p0, Lkotlin/sequences/SequenceBuilderIterator;->state:I .line 187 iput-object p2, p0, Lkotlin/sequences/SequenceBuilderIterator;->nextStep:Lkotlin/coroutines/Continuation; .line 188 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object p1 .line 186 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object v0 if-ne p1, v0, :cond_1d invoke-static {p2}, Lkotlin/coroutines/jvm/internal/DebugProbesKt;->probeCoroutineSuspended(Lkotlin/coroutines/Continuation;)V :cond_1d invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object p2 if-ne p1, p2, :cond_24 return-object p1 :cond_24 sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; return-object p1 .end method