.class public final Lkotlinx/coroutines/flow/DistinctFlowImpl; .super Ljava/lang/Object; .source "SourceFile" # interfaces .implements Lkotlinx/coroutines/flow/Flow; # instance fields .field public final areEquivalent:Lkotlin/jvm/functions/Function2; .field public final keySelector:Lkotlin/jvm/functions/Function1; .field public final upstream:Lkotlinx/coroutines/flow/Flow; # direct methods .method public constructor (Lkotlinx/coroutines/flow/Flow;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function2;)V .locals 0 .line 65 invoke-direct {p0}, Ljava/lang/Object;->()V iput-object p1, p0, Lkotlinx/coroutines/flow/DistinctFlowImpl;->upstream:Lkotlinx/coroutines/flow/Flow; iput-object p2, p0, Lkotlinx/coroutines/flow/DistinctFlowImpl;->keySelector:Lkotlin/jvm/functions/Function1; iput-object p3, p0, Lkotlinx/coroutines/flow/DistinctFlowImpl;->areEquivalent:Lkotlin/jvm/functions/Function2; return-void .end method # virtual methods .method public collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; .locals 3 .line 71 new-instance v0, Lkotlin/jvm/internal/Ref$ObjectRef; invoke-direct {v0}, Lkotlin/jvm/internal/Ref$ObjectRef;->()V sget-object v1, Lkotlinx/coroutines/flow/internal/NullSurrogateKt;->NULL:Lkotlinx/coroutines/internal/Symbol; iput-object v1, v0, Lkotlin/jvm/internal/Ref$ObjectRef;->element:Ljava/lang/Object; iget-object v1, p0, Lkotlinx/coroutines/flow/DistinctFlowImpl;->upstream:Lkotlinx/coroutines/flow/Flow; .line 72 new-instance v2, Lkotlinx/coroutines/flow/DistinctFlowImpl$collect$2; invoke-direct {v2, p0, v0, p1}, Lkotlinx/coroutines/flow/DistinctFlowImpl$collect$2;->(Lkotlinx/coroutines/flow/DistinctFlowImpl;Lkotlin/jvm/internal/Ref$ObjectRef;Lkotlinx/coroutines/flow/FlowCollector;)V invoke-interface {v1, v2, p2}, Lkotlinx/coroutines/flow/Flow;->collect(Lkotlinx/coroutines/flow/FlowCollector;Lkotlin/coroutines/Continuation;)Ljava/lang/Object; move-result-object p1 invoke-static {}, Lkotlin/coroutines/intrinsics/IntrinsicsKt;->getCOROUTINE_SUSPENDED()Ljava/lang/Object; move-result-object p2 if-ne p1, p2, :cond_0 return-object p1 :cond_0 sget-object p1, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit; return-object p1 .end method