class com.sun.tools.javac.comp.Attr$2 extends com.sun.tools.javac.code.Types$MapVisitor<com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition>
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.tools.javac.comp.Attr$2
super_class: com.sun.tools.javac.code.Types$MapVisitor
{
final com.sun.tools.javac.comp.Attr this$0;
descriptor: Lcom/sun/tools/javac/comp/Attr;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.sun.tools.javac.comp.Attr);
descriptor: (Lcom/sun/tools/javac/comp/Attr;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 0: aload 0
aload 1
putfield com.sun.tools.javac.comp.Attr$2.this$0:Lcom/sun/tools/javac/comp/Attr;
aload 0
invokespecial com.sun.tools.javac.code.Types$MapVisitor.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/comp/Attr$2;
MethodParameters:
Name Flags
this$0 final
public com.sun.tools.javac.code.Type visitClassType(com.sun.tools.javac.code.Type$ClassType, com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition);
descriptor: (Lcom/sun/tools/javac/code/Type$ClassType;Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;)Lcom/sun/tools/javac/code/Type;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual com.sun.tools.javac.code.Type$ClassType.isIntersection:()Z
ifeq 2
1: aload 0
aload 1
checkcast com.sun.tools.javac.code.Type$IntersectionClassType
aload 2
invokevirtual com.sun.tools.javac.comp.Attr$2.visitIntersectionClassType:(Lcom/sun/tools/javac/code/Type$IntersectionClassType;Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;)Lcom/sun/tools/javac/code/Type;
goto 3
StackMap locals:
StackMap stack:
2: aload 1
3: StackMap locals:
StackMap stack: com.sun.tools.javac.code.Type
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/tools/javac/comp/Attr$2;
0 4 1 t Lcom/sun/tools/javac/code/Type$ClassType;
0 4 2 pos Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
MethodParameters:
Name Flags
t
pos
public com.sun.tools.javac.code.Type visitIntersectionClassType(com.sun.tools.javac.code.Type$IntersectionClassType, com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition);
descriptor: (Lcom/sun/tools/javac/code/Type$IntersectionClassType;Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;)Lcom/sun/tools/javac/code/Type;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=8, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.tools.javac.comp.Attr$2.this$0:Lcom/sun/tools/javac/comp/Attr;
getfield com.sun.tools.javac.comp.Attr.types:Lcom/sun/tools/javac/code/Types;
aload 0
aload 1
invokevirtual com.sun.tools.javac.comp.Attr$2.makeNotionalInterface:(Lcom/sun/tools/javac/code/Type$IntersectionClassType;)Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
invokevirtual com.sun.tools.javac.code.Types.findDescriptorSymbol:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/code/Symbol;
astore 3
start local 3 1: aconst_null
astore 4
start local 4 2: aload 1
invokevirtual com.sun.tools.javac.code.Type$IntersectionClassType.getExplicitComponents:()Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 6
goto 11
StackMap locals: com.sun.tools.javac.comp.Attr$2 com.sun.tools.javac.code.Type$IntersectionClassType com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.code.Symbol com.sun.tools.javac.code.Type top java.util.Iterator
StackMap stack:
3: aload 6
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
astore 5
start local 5 4: aload 5
getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
astore 7
start local 7 5: aload 0
getfield com.sun.tools.javac.comp.Attr$2.this$0:Lcom/sun/tools/javac/comp/Attr;
getfield com.sun.tools.javac.comp.Attr.types:Lcom/sun/tools/javac/code/Types;
aload 7
invokevirtual com.sun.tools.javac.code.Types.isFunctionalInterface:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Z
ifeq 9
6: aload 0
getfield com.sun.tools.javac.comp.Attr$2.this$0:Lcom/sun/tools/javac/comp/Attr;
getfield com.sun.tools.javac.comp.Attr.types:Lcom/sun/tools/javac/code/Types;
aload 7
invokevirtual com.sun.tools.javac.code.Types.findDescriptorSymbol:(Lcom/sun/tools/javac/code/Symbol$TypeSymbol;)Lcom/sun/tools/javac/code/Symbol;
aload 3
if_acmpne 9
7: aload 5
astore 4
8: goto 11
StackMap locals: com.sun.tools.javac.comp.Attr$2 com.sun.tools.javac.code.Type$IntersectionClassType com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.code.Symbol com.sun.tools.javac.code.Type com.sun.tools.javac.code.Type java.util.Iterator com.sun.tools.javac.code.Symbol$TypeSymbol
StackMap stack:
9: aload 7
invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.isInterface:()Z
ifeq 10
aload 7
invokevirtual com.sun.tools.javac.code.Symbol$TypeSymbol.flags:()J
ldc 8192
land
lconst_0
lcmp
ifeq 11
10: StackMap locals:
StackMap stack:
aload 0
aload 2
ldc "not.an.intf.component"
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 7
aastore
invokevirtual com.sun.tools.javac.comp.Attr$2.reportIntersectionError:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Ljava/lang/String;[Ljava/lang/Object;)V
end local 7 end local 5 11: StackMap locals: com.sun.tools.javac.comp.Attr$2 com.sun.tools.javac.code.Type$IntersectionClassType com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.code.Symbol com.sun.tools.javac.code.Type top java.util.Iterator
StackMap stack:
aload 6
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
12: aload 4
ifnull 14
13: aload 4
goto 15
14: StackMap locals: com.sun.tools.javac.comp.Attr$2 com.sun.tools.javac.code.Type$IntersectionClassType com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition com.sun.tools.javac.code.Symbol com.sun.tools.javac.code.Type
StackMap stack:
aload 1
invokevirtual com.sun.tools.javac.code.Type$IntersectionClassType.getExplicitComponents:()Lcom/sun/tools/javac/util/List;
getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
15: StackMap locals:
StackMap stack: com.sun.tools.javac.code.Type
areturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/sun/tools/javac/comp/Attr$2;
0 16 1 ict Lcom/sun/tools/javac/code/Type$IntersectionClassType;
0 16 2 pos Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
1 16 3 desc Lcom/sun/tools/javac/code/Symbol;
2 16 4 target Lcom/sun/tools/javac/code/Type;
4 11 5 bound Lcom/sun/tools/javac/code/Type;
5 11 7 boundSym Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
MethodParameters:
Name Flags
ict
pos
private com.sun.tools.javac.code.Symbol$TypeSymbol makeNotionalInterface(com.sun.tools.javac.code.Type$IntersectionClassType);
descriptor: (Lcom/sun/tools/javac/code/Type$IntersectionClassType;)Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=6, args_size=2
start local 0 start local 1 0: new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
astore 2
start local 2 1: new com.sun.tools.javac.util.ListBuffer
dup
invokespecial com.sun.tools.javac.util.ListBuffer.<init>:()V
astore 3
start local 3 2: aload 1
getfield com.sun.tools.javac.code.Type$IntersectionClassType.interfaces_field:Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.List.iterator:()Ljava/util/Iterator;
astore 5
goto 7
StackMap locals: com.sun.tools.javac.comp.Attr$2 com.sun.tools.javac.code.Type$IntersectionClassType com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.ListBuffer top java.util.Iterator
StackMap stack:
3: aload 5
invokeinterface java.util.Iterator.next:()Ljava/lang/Object;
checkcast com.sun.tools.javac.code.Type
astore 4
start local 4 4: aload 4
invokevirtual com.sun.tools.javac.code.Type.isParameterized:()Z
ifeq 6
5: aload 2
aload 4
getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
getfield com.sun.tools.javac.code.Symbol$TypeSymbol.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Type.allparams:()Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.util.ListBuffer.appendList:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/util/ListBuffer;
pop
6: StackMap locals: com.sun.tools.javac.comp.Attr$2 com.sun.tools.javac.code.Type$IntersectionClassType com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.code.Type java.util.Iterator
StackMap stack:
aload 3
aload 4
getfield com.sun.tools.javac.code.Type.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
getfield com.sun.tools.javac.code.Symbol$TypeSymbol.type:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.util.ListBuffer.append:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/ListBuffer;
pop
end local 4 7: StackMap locals: com.sun.tools.javac.comp.Attr$2 com.sun.tools.javac.code.Type$IntersectionClassType com.sun.tools.javac.util.ListBuffer com.sun.tools.javac.util.ListBuffer top java.util.Iterator
StackMap stack:
aload 5
invokeinterface java.util.Iterator.hasNext:()Z
ifne 3
8: aload 0
getfield com.sun.tools.javac.comp.Attr$2.this$0:Lcom/sun/tools/javac/comp/Attr;
getfield com.sun.tools.javac.comp.Attr.types:Lcom/sun/tools/javac/code/Types;
aload 3
invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
invokevirtual com.sun.tools.javac.code.Types.makeIntersectionType:(Lcom/sun/tools/javac/util/List;)Lcom/sun/tools/javac/code/Type$IntersectionClassType;
astore 4
start local 4 9: aload 4
aload 2
invokevirtual com.sun.tools.javac.util.ListBuffer.toList:()Lcom/sun/tools/javac/util/List;
putfield com.sun.tools.javac.code.Type$IntersectionClassType.allparams_field:Lcom/sun/tools/javac/util/List;
10: aload 4
getfield com.sun.tools.javac.code.Type$IntersectionClassType.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
dup
getfield com.sun.tools.javac.code.Symbol$TypeSymbol.flags_field:J
ldc 512
lor
putfield com.sun.tools.javac.code.Symbol$TypeSymbol.flags_field:J
11: aload 4
getfield com.sun.tools.javac.code.Type$IntersectionClassType.tsym:Lcom/sun/tools/javac/code/Symbol$TypeSymbol;
areturn
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/Attr$2;
0 12 1 ict Lcom/sun/tools/javac/code/Type$IntersectionClassType;
1 12 2 targs Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
2 12 3 supertypes Lcom/sun/tools/javac/util/ListBuffer<Lcom/sun/tools/javac/code/Type;>;
4 7 4 i Lcom/sun/tools/javac/code/Type;
9 12 4 notionalIntf Lcom/sun/tools/javac/code/Type$IntersectionClassType;
MethodParameters:
Name Flags
ict
private void reportIntersectionError(com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition, java.lang.String, java.lang.Object[]);
descriptor: (Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Ljava/lang/String;[Ljava/lang/Object;)V
flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
Code:
stack=10, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
getfield com.sun.tools.javac.comp.Attr$2.this$0:Lcom/sun/tools/javac/comp/Attr;
getfield com.sun.tools.javac.comp.Attr.resultInfo:Lcom/sun/tools/javac/comp/Attr$ResultInfo;
getfield com.sun.tools.javac.comp.Attr$ResultInfo.checkContext:Lcom/sun/tools/javac/comp/Check$CheckContext;
aload 1
aload 0
getfield com.sun.tools.javac.comp.Attr$2.this$0:Lcom/sun/tools/javac/comp/Attr;
getfield com.sun.tools.javac.comp.Attr.diags:Lcom/sun/tools/javac/util/JCDiagnostic$Factory;
ldc "bad.intersection.target.for.functional.expr"
iconst_1
anewarray java.lang.Object
dup
iconst_0
1: aload 0
getfield com.sun.tools.javac.comp.Attr$2.this$0:Lcom/sun/tools/javac/comp/Attr;
getfield com.sun.tools.javac.comp.Attr.diags:Lcom/sun/tools/javac/util/JCDiagnostic$Factory;
aload 2
aload 3
invokevirtual com.sun.tools.javac.util.JCDiagnostic$Factory.fragment:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/sun/tools/javac/util/JCDiagnostic;
aastore
2: invokevirtual com.sun.tools.javac.util.JCDiagnostic$Factory.fragment:(Ljava/lang/String;[Ljava/lang/Object;)Lcom/sun/tools/javac/util/JCDiagnostic;
invokeinterface com.sun.tools.javac.comp.Check$CheckContext.report:(Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;Lcom/sun/tools/javac/util/JCDiagnostic;)V
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/tools/javac/comp/Attr$2;
0 4 1 pos Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;
0 4 2 key Ljava/lang/String;
0 4 3 args [Ljava/lang/Object;
MethodParameters:
Name Flags
pos
key
args
public java.lang.Object visitClassType(com.sun.tools.javac.code.Type$ClassType, java.lang.Object);
descriptor: (Lcom/sun/tools/javac/code/Type$ClassType;Ljava/lang/Object;)Ljava/lang/Object;
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
aload 2
checkcast com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition
invokevirtual com.sun.tools.javac.comp.Attr$2.visitClassType:(Lcom/sun/tools/javac/code/Type$ClassType;Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;)Lcom/sun/tools/javac/code/Type;
areturn
LocalVariableTable:
Start End Slot Name Signature
}
Signature: Lcom/sun/tools/javac/code/Types$MapVisitor<Lcom/sun/tools/javac/util/JCDiagnostic$DiagnosticPosition;>;
SourceFile: "Attr.java"
EnclosingMethod: com.sun.tools.javac.comp.Attr
NestHost: com.sun.tools.javac.comp.Attr
InnerClasses:
public abstract TypeSymbol = com.sun.tools.javac.code.Symbol$TypeSymbol of com.sun.tools.javac.code.Symbol
public ClassType = com.sun.tools.javac.code.Type$ClassType of com.sun.tools.javac.code.Type
public IntersectionClassType = com.sun.tools.javac.code.Type$IntersectionClassType of com.sun.tools.javac.code.Type
public MapVisitor = com.sun.tools.javac.code.Types$MapVisitor of com.sun.tools.javac.code.Types
com.sun.tools.javac.comp.Attr$2
ResultInfo = com.sun.tools.javac.comp.Attr$ResultInfo of com.sun.tools.javac.comp.Attr
public abstract CheckContext = com.sun.tools.javac.comp.Check$CheckContext of com.sun.tools.javac.comp.Check
public abstract DiagnosticPosition = com.sun.tools.javac.util.JCDiagnostic$DiagnosticPosition of com.sun.tools.javac.util.JCDiagnostic
public Factory = com.sun.tools.javac.util.JCDiagnostic$Factory of com.sun.tools.javac.util.JCDiagnostic