class com.sun.tools.javac.comp.Infer$PropagateBounds 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$PropagateBounds
super_class: com.sun.tools.javac.comp.Infer$IncorporationAction
{
com.sun.tools.javac.code.Type$UndetVar$InferenceBound ib;
descriptor: Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
flags: (0x0000)
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, com.sun.tools.javac.code.Type$UndetVar$InferenceBound);
descriptor: (Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=5
start local 0 start local 2 start local 3 start local 4 0: aload 0
aload 1
putfield com.sun.tools.javac.comp.Infer$PropagateBounds.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: aload 0
aload 4
putfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
3: return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/tools/javac/comp/Infer$PropagateBounds;
0 4 2 uv Lcom/sun/tools/javac/code/Type$UndetVar;
0 4 3 t Lcom/sun/tools/javac/code/Type;
0 4 4 ib Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
MethodParameters:
Name Flags
this$0 final
uv
t
ib
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=6, locals=2, args_size=2
start local 0 start local 1 0: new com.sun.tools.javac.comp.Infer$PropagateBounds
dup
aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.this$0:Lcom/sun/tools/javac/comp/Infer;
aload 1
aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.t:Lcom/sun/tools/javac/code/Type;
aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
invokespecial com.sun.tools.javac.comp.Infer$PropagateBounds.<init>:(Lcom/sun/tools/javac/comp/Infer;Lcom/sun/tools/javac/code/Type$UndetVar;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;)V
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/comp/Infer$PropagateBounds;
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=10, args_size=3
start local 0 start local 1 start local 2 0: aload 1
aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.t:Lcom/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;
astore 3
start local 3 1: aload 3
getstatic com.sun.tools.javac.code.TypeTag.UNDETVAR:Lcom/sun/tools/javac/code/TypeTag;
invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
ifeq 11
aload 3
checkcast com.sun.tools.javac.code.Type$UndetVar
invokevirtual com.sun.tools.javac.code.Type$UndetVar.isCaptured:()Z
ifne 11
2: aload 3
checkcast com.sun.tools.javac.code.Type$UndetVar
astore 4
start local 4 3: aload 4
aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
invokevirtual com.sun.tools.javac.code.Type$UndetVar$InferenceBound.complement:()Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.uv:Lcom/sun/tools/javac/code/Type$UndetVar;
aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.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.addBound:(Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)V
4: aload 0
invokevirtual com.sun.tools.javac.comp.Infer$PropagateBounds.backwards:()Ljava/util/EnumSet;
invokevirtual java.util.EnumSet.iterator:()Ljava/util/Iterator;
astore 6
goto 10
StackMap locals: com.sun.tools.javac.comp.Infer$PropagateBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type$UndetVar top java.util.Iterator
StackMap stack:
5: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type$UndetVar$InferenceBound
astore 5
start local 5 6: aload 4
iconst_1
anewarray com.sun.tools.javac.code.Type$UndetVar$InferenceBound
dup
iconst_0
aload 5
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.iterator:()Ljava/util/Iterator;
astore 8
goto 9
StackMap locals: com.sun.tools.javac.comp.Infer$PropagateBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type$UndetVar com.sun.tools.javac.code.Type$UndetVar$InferenceBound java.util.Iterator top java.util.Iterator
StackMap stack:
7: aload 8
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
astore 7
start local 7 8: aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.uv:Lcom/sun/tools/javac/code/Type$UndetVar;
aload 5
aload 7
aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.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.addBound:(Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)V
end local 7 9: StackMap locals:
StackMap stack:
aload 8
invokeinterface java.util.Iterator.hasNext:()Z
ifne 7
end local 5 10: StackMap locals: com.sun.tools.javac.comp.Infer$PropagateBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type$UndetVar top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 5
end local 4 11: StackMap locals: com.sun.tools.javac.comp.Infer$PropagateBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.code.Type
StackMap stack:
aload 0
invokevirtual com.sun.tools.javac.comp.Infer$PropagateBounds.forward:()Ljava/util/EnumSet;
invokevirtual java.util.EnumSet.iterator:()Ljava/util/Iterator;
astore 5
goto 20
StackMap locals: com.sun.tools.javac.comp.Infer$PropagateBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.code.Type top java.util.Iterator
StackMap stack:
12: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type$UndetVar$InferenceBound
astore 4
start local 4 13: aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.uv:Lcom/sun/tools/javac/code/Type$UndetVar;
iconst_1
anewarray com.sun.tools.javac.code.Type$UndetVar$InferenceBound
dup
iconst_0
aload 4
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.iterator:()Ljava/util/Iterator;
astore 7
goto 19
StackMap locals: com.sun.tools.javac.comp.Infer$PropagateBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type$UndetVar$InferenceBound java.util.Iterator top java.util.Iterator
StackMap stack:
14: aload 7
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
astore 6
start local 6 15: aload 1
aload 6
invokevirtual com.sun.tools.javac.comp.InferenceContext.asUndetVar:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
astore 8
start local 8 16: aload 8
getstatic com.sun.tools.javac.code.TypeTag.UNDETVAR:Lcom/sun/tools/javac/code/TypeTag;
invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
ifeq 19
aload 8
checkcast com.sun.tools.javac.code.Type$UndetVar
invokevirtual com.sun.tools.javac.code.Type$UndetVar.isCaptured:()Z
ifne 19
17: aload 8
checkcast com.sun.tools.javac.code.Type$UndetVar
astore 9
start local 9 18: aload 9
aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
aload 1
aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.t:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.comp.InferenceContext.asInstType:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.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.addBound:(Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Types;)V
end local 9 end local 8 end local 6 19: StackMap locals:
StackMap stack:
aload 7
invokeinterface java.util.Iterator.hasNext:()Z
ifne 14
end local 4 20: StackMap locals: com.sun.tools.javac.comp.Infer$PropagateBounds com.sun.tools.javac.comp.InferenceContext com.sun.tools.javac.util.Warner com.sun.tools.javac.code.Type top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 12
21: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/sun/tools/javac/comp/Infer$PropagateBounds;
0 22 1 inferenceContext Lcom/sun/tools/javac/comp/InferenceContext;
0 22 2 warner Lcom/sun/tools/javac/util/Warner;
1 22 3 undetT Lcom/sun/tools/javac/code/Type;
3 11 4 uv2 Lcom/sun/tools/javac/code/Type$UndetVar;
6 10 5 ib2 Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
8 9 7 b Lcom/sun/tools/javac/code/Type;
13 20 4 ib2 Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
15 19 6 l Lcom/sun/tools/javac/code/Type;
16 19 8 undet Lcom/sun/tools/javac/code/Type;
18 19 9 uv2 Lcom/sun/tools/javac/code/Type$UndetVar;
MethodParameters:
Name Flags
inferenceContext
warner
java.util.EnumSet<com.sun.tools.javac.code.Type$UndetVar$InferenceBound> forward();
descriptor: ()Ljava/util/EnumSet;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.EQ:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
if_acmpne 2
1: getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.EQ:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
goto 3
StackMap locals:
StackMap stack:
2: aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
invokestatic java.util.EnumSet.complementOf:(Ljava/util/EnumSet;)Ljava/util/EnumSet;
3: StackMap locals:
StackMap stack: java.util.EnumSet
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/tools/javac/comp/Infer$PropagateBounds;
Signature: ()Ljava/util/EnumSet<Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;>;
java.util.EnumSet<com.sun.tools.javac.code.Type$UndetVar$InferenceBound> backwards();
descriptor: ()Ljava/util/EnumSet;
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
getstatic com.sun.tools.javac.code.Type$UndetVar$InferenceBound.EQ:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
if_acmpne 2
1: ldc Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
invokestatic java.util.EnumSet.allOf:(Ljava/lang/Class;)Ljava/util/EnumSet;
goto 3
StackMap locals:
StackMap stack:
2: aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
invokestatic java.util.EnumSet.of:(Ljava/lang/Enum;)Ljava/util/EnumSet;
3: StackMap locals:
StackMap stack: java.util.EnumSet
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/tools/javac/comp/Infer$PropagateBounds;
Signature: ()Ljava/util/EnumSet<Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;>;
public java.lang.String toString();
descriptor: ()Ljava/lang/String;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=1, args_size=1
start local 0 0: ldc "%s[undet=%s,t=%s,bound=%s]"
iconst_4
anewarray java.lang.Object
dup
iconst_0
aload 0
invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
invokevirtual java.lang.Class.getSimpleName:()Ljava/lang/String;
aastore
dup
iconst_1
aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.uv:Lcom/sun/tools/javac/code/Type$UndetVar;
getfield com.sun.tools.javac.code.Type$UndetVar.qtype:Lcom/sun/tools/javac/code/Type;
aastore
dup
iconst_2
aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.t:Lcom/sun/tools/javac/code/Type;
aastore
dup
iconst_3
aload 0
getfield com.sun.tools.javac.comp.Infer$PropagateBounds.ib:Lcom/sun/tools/javac/code/Type$UndetVar$InferenceBound;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/comp/Infer$PropagateBounds;
}
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
public abstract IncorporationAction = com.sun.tools.javac.comp.Infer$IncorporationAction of com.sun.tools.javac.comp.Infer
PropagateBounds = com.sun.tools.javac.comp.Infer$PropagateBounds of com.sun.tools.javac.comp.Infer