class com.sun.tools.javac.comp.Operators$BinaryStringOperator extends com.sun.tools.javac.comp.Operators$BinaryOperatorHelper
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.tools.javac.comp.Operators$BinaryStringOperator
super_class: com.sun.tools.javac.comp.Operators$BinaryOperatorHelper
{
final com.sun.tools.javac.comp.Operators this$0;
descriptor: Lcom/sun/tools/javac/comp/Operators;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.sun.tools.javac.comp.Operators, com.sun.tools.javac.tree.JCTree$Tag);
descriptor: (Lcom/sun/tools/javac/comp/Operators;Lcom/sun/tools/javac/tree/JCTree$Tag;)V
flags: (0x0000)
Code:
stack=3, locals=3, args_size=3
start local 0 start local 2 0: aload 0
aload 1
putfield com.sun.tools.javac.comp.Operators$BinaryStringOperator.this$0:Lcom/sun/tools/javac/comp/Operators;
1: aload 0
aload 1
aload 2
invokespecial com.sun.tools.javac.comp.Operators$BinaryOperatorHelper.<init>:(Lcom/sun/tools/javac/comp/Operators;Lcom/sun/tools/javac/tree/JCTree$Tag;)V
2: return
end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/tools/javac/comp/Operators$BinaryStringOperator;
0 3 2 tag Lcom/sun/tools/javac/tree/JCTree$Tag;
MethodParameters:
Name Flags
this$0 final
tag
public com.sun.tools.javac.code.Symbol$OperatorSymbol resolve(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Symbol$OperatorSymbol;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
aload 0
aload 1
invokevirtual com.sun.tools.javac.comp.Operators$BinaryStringOperator.stringPromotion:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
aload 0
aload 2
invokevirtual com.sun.tools.javac.comp.Operators$BinaryStringOperator.stringPromotion:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.comp.Operators$BinaryStringOperator.doLookup:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Symbol$OperatorSymbol;
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/tools/javac/comp/Operators$BinaryStringOperator;
0 1 1 arg1 Lcom/sun/tools/javac/code/Type;
0 1 2 arg2 Lcom/sun/tools/javac/code/Type;
MethodParameters:
Name Flags
arg1
arg2
public boolean test(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.tools.javac.comp.Operators$BinaryStringOperator.this$0:Lcom/sun/tools/javac/comp/Operators;
getfield com.sun.tools.javac.comp.Operators.types:Lcom/sun/tools/javac/code/Types;
aload 1
aload 0
getfield com.sun.tools.javac.comp.Operators$BinaryStringOperator.this$0:Lcom/sun/tools/javac/comp/Operators;
getfield com.sun.tools.javac.comp.Operators.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.stringType:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
ifne 3
1: aload 0
getfield com.sun.tools.javac.comp.Operators$BinaryStringOperator.this$0:Lcom/sun/tools/javac/comp/Operators;
getfield com.sun.tools.javac.comp.Operators.types:Lcom/sun/tools/javac/code/Types;
aload 2
aload 0
getfield com.sun.tools.javac.comp.Operators$BinaryStringOperator.this$0:Lcom/sun/tools/javac/comp/Operators;
getfield com.sun.tools.javac.comp.Operators.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.stringType:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
ifne 3
2: iconst_0
goto 4
StackMap locals:
StackMap stack:
3: iconst_1
StackMap locals:
StackMap stack: int
4: istore 3
start local 3 5: aload 1
getstatic com.sun.tools.javac.code.TypeTag.VOID:Lcom/sun/tools/javac/code/TypeTag;
invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
ifne 6
aload 2
getstatic com.sun.tools.javac.code.TypeTag.VOID:Lcom/sun/tools/javac/code/TypeTag;
invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
ifne 6
iconst_0
goto 7
StackMap locals: int
StackMap stack:
6: iconst_1
StackMap locals:
StackMap stack: int
7: istore 4
start local 4 8: iload 3
ifeq 9
iload 4
ifne 9
iconst_1
ireturn
StackMap locals: int
StackMap stack:
9: iconst_0
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/tools/javac/comp/Operators$BinaryStringOperator;
0 10 1 arg1 Lcom/sun/tools/javac/code/Type;
0 10 2 arg2 Lcom/sun/tools/javac/code/Type;
5 10 3 hasStringOp Z
8 10 4 hasVoidOp Z
MethodParameters:
Name Flags
arg1
arg2
private com.sun.tools.javac.code.Type stringPromotion(com.sun.tools.javac.code.Type);
descriptor: (Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual com.sun.tools.javac.code.Type.isPrimitive:()Z
ifeq 2
1: aload 0
getfield com.sun.tools.javac.comp.Operators$BinaryStringOperator.this$0:Lcom/sun/tools/javac/comp/Operators;
aload 1
invokevirtual com.sun.tools.javac.comp.Operators.unaryPromotion:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
areturn
2: StackMap locals:
StackMap stack:
aload 1
getstatic com.sun.tools.javac.code.TypeTag.VOID:Lcom/sun/tools/javac/code/TypeTag;
invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
ifne 4
aload 1
getstatic com.sun.tools.javac.code.TypeTag.BOT:Lcom/sun/tools/javac/code/TypeTag;
invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
ifne 4
3: aload 0
getfield com.sun.tools.javac.comp.Operators$BinaryStringOperator.this$0:Lcom/sun/tools/javac/comp/Operators;
getfield com.sun.tools.javac.comp.Operators.types:Lcom/sun/tools/javac/code/Types;
aload 1
aload 0
getfield com.sun.tools.javac.comp.Operators$BinaryStringOperator.this$0:Lcom/sun/tools/javac/comp/Operators;
getfield com.sun.tools.javac.comp.Operators.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.stringType:Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
ifeq 5
4: StackMap locals:
StackMap stack:
aload 1
areturn
5: StackMap locals:
StackMap stack:
aload 1
getstatic com.sun.tools.javac.code.TypeTag.TYPEVAR:Lcom/sun/tools/javac/code/TypeTag;
invokevirtual com.sun.tools.javac.code.Type.hasTag:(Lcom/sun/tools/javac/code/TypeTag;)Z
ifeq 7
6: aload 0
aload 1
invokevirtual com.sun.tools.javac.code.Type.getUpperBound:()Lcom/sun/tools/javac/code/Type;
invokevirtual com.sun.tools.javac.comp.Operators$BinaryStringOperator.stringPromotion:(Lcom/sun/tools/javac/code/Type;)Lcom/sun/tools/javac/code/Type;
areturn
7: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.tools.javac.comp.Operators$BinaryStringOperator.this$0:Lcom/sun/tools/javac/comp/Operators;
getfield com.sun.tools.javac.comp.Operators.syms:Lcom/sun/tools/javac/code/Symtab;
getfield com.sun.tools.javac.code.Symtab.objectType:Lcom/sun/tools/javac/code/Type;
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/tools/javac/comp/Operators$BinaryStringOperator;
0 8 1 t Lcom/sun/tools/javac/code/Type;
MethodParameters:
Name Flags
t
public boolean test(java.lang.Object, java.lang.Object);
descriptor: (Ljava/lang/Object;Ljava/lang/Object;)Z
flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
Code:
stack=3, locals=3, args_size=3
0: aload 0
aload 1
checkcast com.sun.tools.javac.code.Type
aload 2
checkcast com.sun.tools.javac.code.Type
invokevirtual com.sun.tools.javac.comp.Operators$BinaryStringOperator.test:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
ireturn
LocalVariableTable:
Start End Slot Name Signature
}
SourceFile: "Operators.java"
NestHost: com.sun.tools.javac.comp.Operators
InnerClasses:
public OperatorSymbol = com.sun.tools.javac.code.Symbol$OperatorSymbol of com.sun.tools.javac.code.Symbol
abstract BinaryOperatorHelper = com.sun.tools.javac.comp.Operators$BinaryOperatorHelper of com.sun.tools.javac.comp.Operators
BinaryStringOperator = com.sun.tools.javac.comp.Operators$BinaryStringOperator of com.sun.tools.javac.comp.Operators
public final Tag = com.sun.tools.javac.tree.JCTree$Tag of com.sun.tools.javac.tree.JCTree