class com.sun.tools.javac.comp.Infer$CheckUpperBounds extends com.sun.tools.javac.comp.Infer$IncorporationAction
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.tools.javac.comp.Infer$CheckUpperBounds
super_class: com.sun.tools.javac.comp.Infer$IncorporationAction
{
final com.sun.tools.javac.comp.Infer this$0;
descriptor: Lcom/sun/tools/javac/comp/Infer;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
public void <init>(com.sun.tools.javac.comp.Infer, com.sun.tools.javac.code.Type$UndetVar, com.sun.tools.javac.code.Type);
descriptor: (Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/code/Type;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 2 start local 3 0: aload 0
aload 1
putfield com.sun.tools.javac.comp.Infer$CheckUpperBounds.this$0:Lcom/sun/tools/javac/comp/Infer;
1: aload 0
aload 1
aload 2
aload 3
invokespecial com.sun.tools.javac.comp.Infer$IncorporationAction.<init>:(Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/code/Type;)V
2: return
end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/tools/javac/comp/Infer$CheckUpperBounds;
0 3 2 uv Lcom/sun/tools/javac/code/Type$UndetVar;
0 3 3 t Lcom/sun/tools/javac/code/Type;
MethodParameters:
Name Flags
this$0 final
uv
t
public com.sun.tools.javac.comp.Infer$IncorporationAction dup(com.sun.tools.javac.code.Type$UndetVar);
descriptor: (Lcom/sun/tools/javac/code/Type$UndetVar;)Lcom/sun/tools/javac/comp/Infer$IncorporationAction;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new com.sun.tools.javac.comp.Infer$CheckUpperBounds
dup
aload 0
getfield com.sun.tools.javac.comp.Infer$CheckUpperBounds.this$0:Lcom/sun/tools/javac/comp/Infer;
aload 1
aload 0
getfield com.sun.tools.javac.comp.Infer$CheckUpperBounds.t:Lcom/sun/tools/javac/code/Type;
invokespecial com.sun.tools.javac.comp.Infer$CheckUpperBounds.<init>:(Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/code/Type;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/comp/Infer$CheckUpperBounds;
0 1 1 that Lcom/sun/tools/javac/code/Type$UndetVar;
MethodParameters:
Name Flags
that
void apply(com.sun.tools.javac.comp.InferenceContext, com.sun.tools.javac.util.Warner);
descriptor: (Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/util/Warner;)V
flags: (0x0000)
Code:
stack=5, locals=11, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.tools.javac.comp.Infer$CheckUpperBounds.uv:Lcom/sun/tools/javac/code/Type$UndetVar;
iconst_1
anewarray com.sun.tools.javac.code.Type$UndetVar$InferenceBound
dup
iconst_0
getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.UPPER:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
aastore
invokevirtual com.sun.tools.javac.code.Type$UndetVar.getBounds:([Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;)Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.stream:()Ljava/util/stream/Stream;
1: aload 0
getfield com.sun.tools.javac.comp.Infer$CheckUpperBounds.this$0:Lcom/sun/tools/javac/comp/Infer;
getfield com.sun.tools.javac.comp.Infer.types:Lcom/sun/tools/javac/code/Types;
iconst_1
aload 0
getfield com.sun.tools.javac.comp.Infer$CheckUpperBounds.this$0:Lcom/sun/tools/javac/comp/Infer;
getfield com.sun.tools.javac.comp.Infer.types:Lcom/sun/tools/javac/code/Types;
dup
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
pop
invokedynamic test(Lcom/sun/tools/javac/code/Types;)Ljava/util/function/BiPredicate;
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;)Z
com/sun/tools/javac/code/Types.isSameType(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z (5)
(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
invokevirtual com.sun.tools.javac.code.Types.closureCollector:(ZLjava/util/function/BiPredicate;)Ljava/util/stream/Collector;
invokeinterface java.util.stream.Stream.collect:(Ljava/util/stream/Collector;)Ljava/lang/Object;
checkcast com.sun.tools.javac.util.List
2: astore 3
start local 3 3: aload 3
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 26
StackMap locals: com.sun.tools.javac.comp.Infer$CheckUpperBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.util.List top top java.util.Iterator
StackMap stack:
4: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
astore 5
start local 5 5: aload 0
getfield com.sun.tools.javac.comp.Infer$CheckUpperBounds.t:Lcom/sun/tools/javac/code/Type;
aload 5
if_acmpne 6
goto 26
6: StackMap locals: com.sun.tools.javac.comp.Infer$CheckUpperBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.util.List top com.sun.tools.javac.code.Type java.util.Iterator
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Infer$CheckUpperBounds.t:Lcom/sun/tools/javac/code/Type;
aload 5
if_acmpeq 26
aload 0
getfield com.sun.tools.javac.comp.Infer$CheckUpperBounds.t:Lcom/sun/tools/javac/code/Type;
getstatic com.sun.tools.javac.code.TypeTag.WILDCARD:Lcom/sun/tools/javac/code/TypeTag;
invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
ifne 26
aload 5
getstatic com.sun.tools.javac.code.TypeTag.WILDCARD:Lcom/sun/tools/javac/code/TypeTag;
invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
ifne 26
7: aload 0
getfield com.sun.tools.javac.comp.Infer$CheckUpperBounds.this$0:Lcom/sun/tools/javac/comp/Infer;
aload 0
getfield com.sun.tools.javac.comp.Infer$CheckUpperBounds.t:Lcom/sun/tools/javac/code/Type;
aload 5
invokevirtual com.sun.tools.javac.comp.Infer.getParameterizedSupers:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 8
goto 25
StackMap locals: com.sun.tools.javac.comp.Infer$CheckUpperBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.util.List top com.sun.tools.javac.code.Type java.util.Iterator top java.util.Iterator
StackMap stack:
8: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.util.Pair
astore 7
start local 7 9: aload 7
getfield com.sun.tools.javac.util.Pair.fst:Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
invokevirtual com.sun.tools.javac.code.Type.allparams:()Lcom/sun/tools/javac/util/List;
astore 9
start local 9 10: aload 7
getfield com.sun.tools.javac.util.Pair.snd:Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
invokevirtual com.sun.tools.javac.code.Type.allparams:()Lcom/sun/tools/javac/util/List;
astore 10
start local 10 11: goto 21
12: StackMap locals: com.sun.tools.javac.comp.Infer$CheckUpperBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.util.List top com.sun.tools.javac.code.Type java.util.Iterator com.sun.tools.javac.util.Pair java.util.Iterator com.sun.tools.javac.util.List com.sun.tools.javac.util.List
StackMap stack:
aload 9
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
getstatic com.sun.tools.javac.code.TypeTag.WILDCARD:Lcom/sun/tools/javac/code/TypeTag;
invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
ifne 19
13: aload 10
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
getstatic com.sun.tools.javac.code.TypeTag.WILDCARD:Lcom/sun/tools/javac/code/TypeTag;
invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
ifne 19
14: aload 0
aload 1
aload 9
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
invokevirtual com.sun.tools.javac.comp.InferenceContext.asUndetVar:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
15: aload 1
aload 10
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
invokevirtual com.sun.tools.javac.comp.InferenceContext.asUndetVar:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
16: invokevirtual com.sun.tools.javac.comp.Infer$CheckUpperBounds.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
17: ifne 19
18: aload 0
getfield com.sun.tools.javac.comp.Infer$CheckUpperBounds.this$0:Lcom/sun/tools/javac/comp/Infer;
aload 0
getfield com.sun.tools.javac.comp.Infer$CheckUpperBounds.uv:Lcom/sun/tools/javac/code/Type$UndetVar;
getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.UPPER:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
invokevirtual com.sun.tools.javac.comp.Infer.reportBoundError:(Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;)V
19: StackMap locals:
StackMap stack:
aload 9
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 9
20: aload 10
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
astore 10
21: StackMap locals:
StackMap stack:
aload 9
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifeq 22
aload 10
invokevirtual com.sun.tools.javac.util.List.nonEmpty:()Z
ifne 12
22: StackMap locals:
StackMap stack:
aload 9
invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
ifeq 23
aload 10
invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
ifeq 23
iconst_1
goto 24
StackMap locals:
StackMap stack:
23: iconst_0
StackMap locals:
StackMap stack: int
24: invokestatic com.sun.tools.javac.util.Assert.check:(Z)V
end local 10 end local 9 end local 7 25: StackMap locals: com.sun.tools.javac.comp.Infer$CheckUpperBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.util.List top com.sun.tools.javac.code.Type java.util.Iterator top java.util.Iterator
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 8
end local 5 26: StackMap locals: com.sun.tools.javac.comp.Infer$CheckUpperBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.util.List top top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 4
27: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 28 0 this Lcom/sun/tools/javac/comp/Infer$CheckUpperBounds;
0 28 1 inferenceContext Lcom/sun/tools/javac/comp/InferenceContext;
0 28 2 warn Lcom/sun/tools/javac/util/Warner;
3 28 3 boundList Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
5 26 5 b2 Lcom/sun/tools/javac/code/Type;
9 25 7 commonSupers Lcom/sun/tools/javac/util/Pair<Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;>;
10 25 9 allParamsSuperBound1 Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
11 25 10 allParamsSuperBound2 Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
MethodParameters:
Name Flags
inferenceContext
warn
}
SourceFile: "Infer.java"
NestHost: com.sun.tools.javac.comp.Infer
InnerClasses:
public UndetVar = com.sun.tools.javac.code.Type$UndetVar of com.sun.tools.javac.code.Type
public abstract InferenceBound = com.sun.tools.javac.code.Type$UndetVar$InferenceBound of com.sun.tools.javac.code.Type$UndetVar
CheckUpperBounds = com.sun.tools.javac.comp.Infer$CheckUpperBounds of com.sun.tools.javac.comp.Infer
public abstract IncorporationAction = com.sun.tools.javac.comp.Infer$IncorporationAction of com.sun.tools.javac.comp.Infer
public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles
ClosureHolder = com.sun.tools.javac.code.Types$ClosureHolder of com.sun.tools.javac.code.Types