class java.util.stream.DistinctOps$1 extends java.util.stream.ReferencePipeline$StatefulOp<T, T>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: java.util.stream.DistinctOps$1
super_class: java.util.stream.ReferencePipeline$StatefulOp
{
void <init>(java.util.stream.AbstractPipeline, java.util.stream.StreamShape, int);
descriptor: (Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
iload 3
invokespecial java.util.stream.ReferencePipeline$StatefulOp.<init>:(Ljava/util/stream/AbstractPipeline;Ljava/util/stream/StreamShape;I)V
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Ljava/util/stream/DistinctOps$1;
0 1 1 $anonymous0 Ljava/util/stream/AbstractPipeline<*TT;*>;
0 1 2 $anonymous1 Ljava/util/stream/StreamShape;
0 1 3 $anonymous2 I
MethodParameters:
Name Flags
$anonymous0
$anonymous1
$anonymous2
<P_IN> java.util.stream.Node<T> reduce(java.util.stream.PipelineHelper<T>, java.util.Spliterator<P_IN>);
descriptor: (Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/util/stream/Node;
flags: (0x0000)
Code:
stack=3, locals=4, args_size=3
start local 0 start local 1 start local 2 0: invokedynamic get()Ljava/util/function/Supplier;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
()Ljava/lang/Object;
java/util/LinkedHashSet.<init>()V (8)
()Ljava/util/LinkedHashSet;
invokedynamic accept()Ljava/util/function/BiConsumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)V
java/util/HashSet.add(Ljava/lang/Object;)Z (5)
(Ljava/util/LinkedHashSet;Ljava/lang/Object;)V
1: invokedynamic accept()Ljava/util/function/BiConsumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;Ljava/lang/Object;)V
java/util/AbstractCollection.addAll(Ljava/util/Collection;)Z (5)
(Ljava/util/LinkedHashSet;Ljava/util/LinkedHashSet;)V
2: invokestatic java.util.stream.ReduceOps.makeRef:(Ljava/util/function/Supplier;Ljava/util/function/BiConsumer;Ljava/util/function/BiConsumer;)Ljava/util/stream/TerminalOp;
3: astore 3
start local 3 4: aload 3
aload 1
aload 2
invokeinterface java.util.stream.TerminalOp.evaluateParallel:(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object;
checkcast java.util.Collection
invokestatic java.util.stream.Nodes.node:(Ljava/util/Collection;)Ljava/util/stream/Node;
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/stream/DistinctOps$1;
0 5 1 helper Ljava/util/stream/PipelineHelper<TT;>;
0 5 2 spliterator Ljava/util/Spliterator<TP_IN;>;
4 5 3 reduceOp Ljava/util/stream/TerminalOp<TT;Ljava/util/LinkedHashSet<TT;>;>;
Signature: <P_IN:Ljava/lang/Object;>(Ljava/util/stream/PipelineHelper<TT;>;Ljava/util/Spliterator<TP_IN;>;)Ljava/util/stream/Node<TT;>;
MethodParameters:
Name Flags
helper
spliterator
<P_IN> java.util.stream.Node<T> opEvaluateParallel(java.util.stream.PipelineHelper<T>, java.util.Spliterator<P_IN>, java.util.function.IntFunction<T[]>);
descriptor: (Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;Ljava/util/function/IntFunction;)Ljava/util/stream/Node;
flags: (0x0000)
Code:
stack=4, locals=8, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic java.util.stream.StreamOpFlag.DISTINCT:Ljava/util/stream/StreamOpFlag;
aload 1
invokevirtual java.util.stream.PipelineHelper.getStreamAndOpFlags:()I
invokevirtual java.util.stream.StreamOpFlag.isKnown:(I)Z
ifeq 2
1: aload 1
aload 2
iconst_0
aload 3
invokevirtual java.util.stream.PipelineHelper.evaluate:(Ljava/util/Spliterator;ZLjava/util/function/IntFunction;)Ljava/util/stream/Node;
areturn
2: StackMap locals:
StackMap stack:
getstatic java.util.stream.StreamOpFlag.ORDERED:Ljava/util/stream/StreamOpFlag;
aload 1
invokevirtual java.util.stream.PipelineHelper.getStreamAndOpFlags:()I
invokevirtual java.util.stream.StreamOpFlag.isKnown:(I)Z
ifeq 4
3: aload 0
aload 1
aload 2
invokevirtual java.util.stream.DistinctOps$1.reduce:(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/util/stream/Node;
areturn
4: StackMap locals:
StackMap stack:
new java.util.concurrent.atomic.AtomicBoolean
dup
iconst_0
invokespecial java.util.concurrent.atomic.AtomicBoolean.<init>:(Z)V
astore 4
start local 4 5: new java.util.concurrent.ConcurrentHashMap
dup
invokespecial java.util.concurrent.ConcurrentHashMap.<init>:()V
astore 5
start local 5 6: aload 4
aload 5
invokedynamic accept(Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/ConcurrentHashMap;)Ljava/util/function/Consumer;
Bootstrap: invokestatic java.lang.invoke.LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;
Method arguments:
(Ljava/lang/Object;)V
java/util/stream/DistinctOps$1.lambda$3(Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/ConcurrentHashMap;Ljava/lang/Object;)V (6)
(Ljava/lang/Object;)V
7: iconst_0
8: invokestatic java.util.stream.ForEachOps.makeRef:(Ljava/util/function/Consumer;Z)Ljava/util/stream/TerminalOp;
astore 6
start local 6 9: aload 6
aload 1
aload 2
invokeinterface java.util.stream.TerminalOp.evaluateParallel:(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/lang/Object;
pop
10: aload 5
invokevirtual java.util.concurrent.ConcurrentHashMap.keySet:()Ljava/util/concurrent/ConcurrentHashMap$KeySetView;
astore 7
start local 7 11: aload 4
invokevirtual java.util.concurrent.atomic.AtomicBoolean.get:()Z
ifeq 14
12: new java.util.HashSet
dup
aload 7
invokespecial java.util.HashSet.<init>:(Ljava/util/Collection;)V
astore 7
13: aload 7
aconst_null
invokeinterface java.util.Set.add:(Ljava/lang/Object;)Z
pop
14: StackMap locals: java.util.stream.DistinctOps$1 java.util.stream.PipelineHelper java.util.Spliterator java.util.function.IntFunction java.util.concurrent.atomic.AtomicBoolean java.util.concurrent.ConcurrentHashMap java.util.stream.TerminalOp java.util.Set
StackMap stack:
aload 7
invokestatic java.util.stream.Nodes.node:(Ljava/util/Collection;)Ljava/util/stream/Node;
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Ljava/util/stream/DistinctOps$1;
0 15 1 helper Ljava/util/stream/PipelineHelper<TT;>;
0 15 2 spliterator Ljava/util/Spliterator<TP_IN;>;
0 15 3 generator Ljava/util/function/IntFunction<[TT;>;
5 15 4 seenNull Ljava/util/concurrent/atomic/AtomicBoolean;
6 15 5 map Ljava/util/concurrent/ConcurrentHashMap<TT;Ljava/lang/Boolean;>;
9 15 6 forEachOp Ljava/util/stream/TerminalOp<TT;Ljava/lang/Void;>;
11 15 7 keys Ljava/util/Set<TT;>;
Signature: <P_IN:Ljava/lang/Object;>(Ljava/util/stream/PipelineHelper<TT;>;Ljava/util/Spliterator<TP_IN;>;Ljava/util/function/IntFunction<[TT;>;)Ljava/util/stream/Node<TT;>;
MethodParameters:
Name Flags
helper
spliterator
generator
<P_IN> java.util.Spliterator<T> opEvaluateParallelLazy(java.util.stream.PipelineHelper<T>, java.util.Spliterator<P_IN>);
descriptor: (Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/util/Spliterator;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: getstatic java.util.stream.StreamOpFlag.DISTINCT:Ljava/util/stream/StreamOpFlag;
aload 1
invokevirtual java.util.stream.PipelineHelper.getStreamAndOpFlags:()I
invokevirtual java.util.stream.StreamOpFlag.isKnown:(I)Z
ifeq 2
1: aload 1
aload 2
invokevirtual java.util.stream.PipelineHelper.wrapSpliterator:(Ljava/util/Spliterator;)Ljava/util/Spliterator;
areturn
2: StackMap locals:
StackMap stack:
getstatic java.util.stream.StreamOpFlag.ORDERED:Ljava/util/stream/StreamOpFlag;
aload 1
invokevirtual java.util.stream.PipelineHelper.getStreamAndOpFlags:()I
invokevirtual java.util.stream.StreamOpFlag.isKnown:(I)Z
ifeq 4
3: aload 0
aload 1
aload 2
invokevirtual java.util.stream.DistinctOps$1.reduce:(Ljava/util/stream/PipelineHelper;Ljava/util/Spliterator;)Ljava/util/stream/Node;
invokeinterface java.util.stream.Node.spliterator:()Ljava/util/Spliterator;
areturn
4: StackMap locals:
StackMap stack:
new java.util.stream.StreamSpliterators$DistinctSpliterator
dup
aload 1
aload 2
invokevirtual java.util.stream.PipelineHelper.wrapSpliterator:(Ljava/util/Spliterator;)Ljava/util/Spliterator;
invokespecial java.util.stream.StreamSpliterators$DistinctSpliterator.<init>:(Ljava/util/Spliterator;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Ljava/util/stream/DistinctOps$1;
0 5 1 helper Ljava/util/stream/PipelineHelper<TT;>;
0 5 2 spliterator Ljava/util/Spliterator<TP_IN;>;
Signature: <P_IN:Ljava/lang/Object;>(Ljava/util/stream/PipelineHelper<TT;>;Ljava/util/Spliterator<TP_IN;>;)Ljava/util/Spliterator<TT;>;
MethodParameters:
Name Flags
helper
spliterator
java.util.stream.Sink<T> opWrapSink(int, java.util.stream.Sink<T>);
descriptor: (ILjava/util/stream/Sink;)Ljava/util/stream/Sink;
flags: (0x0000)
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
pop
1: getstatic java.util.stream.StreamOpFlag.DISTINCT:Ljava/util/stream/StreamOpFlag;
iload 1
invokevirtual java.util.stream.StreamOpFlag.isKnown:(I)Z
ifeq 3
2: aload 2
areturn
3: StackMap locals:
StackMap stack:
getstatic java.util.stream.StreamOpFlag.SORTED:Ljava/util/stream/StreamOpFlag;
iload 1
invokevirtual java.util.stream.StreamOpFlag.isKnown:(I)Z
ifeq 5
4: new java.util.stream.DistinctOps$1$1
dup
aload 0
aload 2
invokespecial java.util.stream.DistinctOps$1$1.<init>:(Ljava/util/stream/DistinctOps$1;Ljava/util/stream/Sink;)V
areturn
5: StackMap locals:
StackMap stack:
new java.util.stream.DistinctOps$1$2
dup
aload 0
aload 2
invokespecial java.util.stream.DistinctOps$1$2.<init>:(Ljava/util/stream/DistinctOps$1;Ljava/util/stream/Sink;)V
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Ljava/util/stream/DistinctOps$1;
0 6 1 flags I
0 6 2 sink Ljava/util/stream/Sink<TT;>;
Signature: (ILjava/util/stream/Sink<TT;>;)Ljava/util/stream/Sink<TT;>;
MethodParameters:
Name Flags
flags
sink
private static void lambda$3(java.util.concurrent.atomic.AtomicBoolean, java.util.concurrent.ConcurrentHashMap, java.lang.Object);
descriptor: (Ljava/util/concurrent/atomic/AtomicBoolean;Ljava/util/concurrent/ConcurrentHashMap;Ljava/lang/Object;)V
flags: (0x100a) ACC_PRIVATE, ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
start local 2 0: aload 2
ifnonnull 2
1: aload 0
iconst_1
invokevirtual java.util.concurrent.atomic.AtomicBoolean.set:(Z)V
goto 3
2: StackMap locals:
StackMap stack:
aload 1
aload 2
getstatic java.lang.Boolean.TRUE:Ljava/lang/Boolean;
invokevirtual java.util.concurrent.ConcurrentHashMap.putIfAbsent:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
3: StackMap locals:
StackMap stack:
return
end local 2 LocalVariableTable:
Start End Slot Name Signature
0 4 2 t TT;
}
Signature: Ljava/util/stream/ReferencePipeline$StatefulOp<TT;TT;>;
SourceFile: "DistinctOps.java"
EnclosingMethod: java.util.stream.DistinctOps.makeRef:(Ljava/util/stream/AbstractPipeline;)Ljava/util/stream/ReferencePipeline;
NestHost: java.util.stream.DistinctOps
InnerClasses:
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
public KeySetView = java.util.concurrent.ConcurrentHashMap$KeySetView of java.util.concurrent.ConcurrentHashMap
java.util.stream.DistinctOps$1
java.util.stream.DistinctOps$1$1
java.util.stream.DistinctOps$1$2
abstract StatefulOp = java.util.stream.ReferencePipeline$StatefulOp of java.util.stream.ReferencePipeline
final DistinctSpliterator = java.util.stream.StreamSpliterators$DistinctSpliterator of java.util.stream.StreamSpliterators