class com.sun.tools.javac.comp.Infer$SubstBounds extends com.sun.tools.javac.comp.Infer$CheckInst
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.tools.javac.comp.Infer$SubstBounds
super_class: com.sun.tools.javac.comp.Infer$CheckInst
{
final com.sun.tools.javac.comp.Infer this$0;
descriptor: Lcom/sun/tools/javac/comp/Infer;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.sun.tools.javac.comp.Infer, com.sun.tools.javac.code.Type$UndetVar);
descriptor: (Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/code/Type$UndetVar;)V
flags: (0x0000)
Code:
stack=8, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield com.sun.tools.javac.comp.Infer$SubstBounds.this$0:Lcom/sun/tools/javac/comp/Infer;
1: aload 0
aload 1
aload 2
getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.LOWER:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
iconst_2
anewarray com.sun.tools.javac.code.Type$UndetVar$InferenceBound
dup
iconst_0
getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.EQ:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
aastore
dup
iconst_1
getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.UPPER:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
aastore
invokespecial com.sun.tools.javac.comp.Infer$CheckInst.<init>:(Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;[Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;)V
2: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/tools/javac/comp/Infer$SubstBounds;
0 3 2 uv Lcom/sun/tools/javac/code/Type$UndetVar;
MethodParameters:
Name Flags
this$0 final
uv
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=4, locals=2, args_size=2
start local 0 start local 1 0: new com.sun.tools.javac.comp.Infer$SubstBounds
dup
aload 0
getfield com.sun.tools.javac.comp.Infer$SubstBounds.this$0:Lcom/sun/tools/javac/comp/Infer;
aload 1
invokespecial com.sun.tools.javac.comp.Infer$SubstBounds.<init>:(Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/code/Type$UndetVar;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/comp/Infer$SubstBounds;
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=4, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield com.sun.tools.javac.comp.InferenceContext.undetvars:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 4
goto 5
StackMap locals: com.sun.tools.javac.comp.Infer$SubstBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner top java.util.Iterator
StackMap stack:
1: aload 4
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
astore 3
start local 3 2: aload 3
checkcast com.sun.tools.javac.code.Type$UndetVar
astore 5
start local 5 3: aload 5
aload 0
getfield com.sun.tools.javac.comp.Infer$SubstBounds.uv:Lcom/sun/tools/javac/code/Type$UndetVar;
getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
aload 0
getfield com.sun.tools.javac.comp.Infer$SubstBounds.uv:Lcom/sun/tools/javac/code/Type$UndetVar;
invokevirtual com.sun.tools.javac.code.Type$UndetVar.getInst:()Lcom/sun/tools/javac/code/Type;
invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
aload 0
getfield com.sun.tools.javac.comp.Infer$SubstBounds.this$0:Lcom/sun/tools/javac/comp/Infer;
getfield com.sun.tools.javac.comp.Infer.types:Lcom/sun/tools/javac/code/Types;
invokevirtual com.sun.tools.javac.code.Type$UndetVar.substBounds:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/code/Types;)V
4: aload 0
aload 5
aload 1
invokevirtual com.sun.tools.javac.comp.Infer$SubstBounds.checkCompatibleUpperBounds:(Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/comp/InferenceContext;)V
end local 5 end local 3 5: StackMap locals:
StackMap stack:
aload 4
invokeinterface java.util.Iterator.hasNext:()Z
ifne 1
6: aload 0
aload 1
aload 2
invokespecial com.sun.tools.javac.comp.Infer$CheckInst.apply:(Lcom/sun/tools/javac/comp/InferenceContext;Lcom/sun/tools/javac/util/Warner;)V
7: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/tools/javac/comp/Infer$SubstBounds;
0 8 1 inferenceContext Lcom/sun/tools/javac/comp/InferenceContext;
0 8 2 warn Lcom/sun/tools/javac/util/Warner;
2 5 3 undet Lcom/sun/tools/javac/code/Type;
3 5 5 uv2 Lcom/sun/tools/javac/code/Type$UndetVar;
MethodParameters:
Name Flags
inferenceContext
warn
void checkCompatibleUpperBounds(com.sun.tools.javac.code.Type$UndetVar, com.sun.tools.javac.comp.InferenceContext);
descriptor: (Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/comp/InferenceContext;)V
flags: (0x0000)
Code:
stack=5, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 1
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;
new com.sun.tools.javac.comp.Infer$BoundFilter
dup
aload 2
invokespecial com.sun.tools.javac.comp.Infer$BoundFilter.<init>:(Lcom/sun/tools/javac/comp/InferenceContext;)V
invokestatic com.sun.tools.javac.code.Type.filter:(Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/util/Filter;)Lcom/sun/tools/javac/util/List;
1: astore 3
start local 3 2: aload 3
invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
ifeq 5
3: aload 0
getfield com.sun.tools.javac.comp.Infer$SubstBounds.this$0:Lcom/sun/tools/javac/comp/Infer;
getfield com.sun.tools.javac.comp.Infer.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
astore 4
start local 4 4: goto 9
end local 4 5: StackMap locals: com.sun.tools.javac.util.List
StackMap stack:
aload 3
getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.isEmpty:()Z
ifeq 8
6: aload 3
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
astore 4
start local 4 7: goto 9
end local 4 8: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Infer$SubstBounds.this$0:Lcom/sun/tools/javac/comp/Infer;
getfield com.sun.tools.javac.comp.Infer.types:Lcom/sun/tools/javac/code/Types;
aload 3
invokevirtual com.sun.tools.javac.code.Types.glb:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type;
astore 4
start local 4 9: StackMap locals: com.sun.tools.javac.code.Type
StackMap stack:
aload 4
ifnull 10
aload 4
invokevirtual com.sun.tools.javac.code.Type.isErroneous:()Z
ifeq 11
10: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Infer$SubstBounds.this$0:Lcom/sun/tools/javac/comp/Infer;
aload 1
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
11: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/sun/tools/javac/comp/Infer$SubstBounds;
0 12 1 uv Lcom/sun/tools/javac/code/Type$UndetVar;
0 12 2 inferenceContext Lcom/sun/tools/javac/comp/InferenceContext;
2 12 3 hibounds Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
4 5 4 hb Lcom/sun/tools/javac/code/Type;
7 8 4 hb Lcom/sun/tools/javac/code/Type;
9 12 4 hb Lcom/sun/tools/javac/code/Type;
MethodParameters:
Name Flags
uv
inferenceContext
}
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
protected BoundFilter = com.sun.tools.javac.comp.Infer$BoundFilter of com.sun.tools.javac.comp.Infer
CheckInst = com.sun.tools.javac.comp.Infer$CheckInst of com.sun.tools.javac.comp.Infer
public abstract IncorporationAction = com.sun.tools.javac.comp.Infer$IncorporationAction of com.sun.tools.javac.comp.Infer
SubstBounds = com.sun.tools.javac.comp.Infer$SubstBounds of com.sun.tools.javac.comp.Infer