abstract class com.sun.tools.javac.comp.Operators$BinaryOperatorHelper extends com.sun.tools.javac.comp.Operators$OperatorHelper implements java.util.function.BiPredicate<com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type>
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.sun.tools.javac.comp.Operators$BinaryOperatorHelper
  super_class: com.sun.tools.javac.comp.Operators$OperatorHelper
{
  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 // com.sun.tools.javac.comp.Operators$BinaryOperatorHelper this
        start local 2 // com.sun.tools.javac.tree.JCTree$Tag tag
         0: .line 349
            aload 0 /* this */
            aload 1
            putfield com.sun.tools.javac.comp.Operators$BinaryOperatorHelper.this$0:Lcom/sun/tools/javac/comp/Operators;
         1: .line 350
            aload 0 /* this */
            aload 1
            aload 2 /* tag */
            invokespecial com.sun.tools.javac.comp.Operators$OperatorHelper.<init>:(Lcom/sun/tools/javac/comp/Operators;Lcom/sun/tools/javac/tree/JCTree$Tag;)V
         2: .line 351
            return
        end local 2 // com.sun.tools.javac.tree.JCTree$Tag tag
        end local 0 // com.sun.tools.javac.comp.Operators$BinaryOperatorHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/tools/javac/comp/Operators$BinaryOperatorHelper;
            0    3     2   tag  Lcom/sun/tools/javac/tree/JCTree$Tag;
    MethodParameters:
        Name  Flags
      this$0  final
      tag     

  final com.sun.tools.javac.code.Symbol$OperatorSymbol doLookup(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: (0x0010) ACC_FINAL
    Code:
      stack=4, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.comp.Operators$BinaryOperatorHelper this
        start local 1 // com.sun.tools.javac.code.Type t1
        start local 2 // com.sun.tools.javac.code.Type t2
         0: .line 359
            aload 0 /* this */
            aload 0 /* this */
            aload 1 /* t1 */
            aload 2 /* t2 */
            invokedynamic test(Lcom/sun/tools/javac/comp/Operators$BinaryOperatorHelper;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Ljava/util/function/Predicate;
              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;)Z
                  com/sun/tools/javac/comp/Operators$BinaryOperatorHelper.lambda$0(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol$OperatorSymbol;)Z (7)
                  (Lcom/sun/tools/javac/code/Symbol$OperatorSymbol;)Z
            invokevirtual com.sun.tools.javac.comp.Operators$BinaryOperatorHelper.doLookup:(Ljava/util/function/Predicate;)Lcom/sun/tools/javac/code/Symbol$OperatorSymbol;
            areturn
        end local 2 // com.sun.tools.javac.code.Type t2
        end local 1 // com.sun.tools.javac.code.Type t1
        end local 0 // com.sun.tools.javac.comp.Operators$BinaryOperatorHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/Operators$BinaryOperatorHelper;
            0    1     1    t1  Lcom/sun/tools/javac/code/Type;
            0    1     2    t2  Lcom/sun/tools/javac/code/Type;
    MethodParameters:
      Name  Flags
      t1    
      t2    

  boolean isBinaryOperatorApplicable(com.sun.tools.javac.code.Symbol$OperatorSymbol, com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type);
    descriptor: (Lcom/sun/tools/javac/code/Symbol$OperatorSymbol;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // com.sun.tools.javac.comp.Operators$BinaryOperatorHelper this
        start local 1 // com.sun.tools.javac.code.Symbol$OperatorSymbol op
        start local 2 // com.sun.tools.javac.code.Type t1
        start local 3 // com.sun.tools.javac.code.Type t2
         0: .line 366
            aload 1 /* op */
            getfield com.sun.tools.javac.code.Symbol$OperatorSymbol.type:Lcom/sun/tools/javac/code/Type;
            invokevirtual com.sun.tools.javac.code.Type.getParameterTypes:()Lcom/sun/tools/javac/util/List;
            astore 4 /* formals */
        start local 4 // com.sun.tools.javac.util.List formals
         1: .line 367
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Operators$BinaryOperatorHelper.this$0:Lcom/sun/tools/javac/comp/Operators;
            getfield com.sun.tools.javac.comp.Operators.types:Lcom/sun/tools/javac/code/Types;
            aload 4 /* formals */
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 2 /* t1 */
            invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 4
         2: .line 368
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Operators$BinaryOperatorHelper.this$0:Lcom/sun/tools/javac/comp/Operators;
            getfield com.sun.tools.javac.comp.Operators.types:Lcom/sun/tools/javac/code/Types;
            aload 4 /* formals */
            getfield com.sun.tools.javac.util.List.tail:Lcom/sun/tools/javac/util/List;
            getfield com.sun.tools.javac.util.List.head:Ljava/lang/Object;
            checkcast com.sun.tools.javac.code.Type
            aload 3 /* t2 */
            invokevirtual com.sun.tools.javac.code.Types.isSameType:(Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ifeq 4
         3: .line 367
            iconst_1
            ireturn
      StackMap locals: com.sun.tools.javac.util.List
      StackMap stack:
         4: iconst_0
            ireturn
        end local 4 // com.sun.tools.javac.util.List formals
        end local 3 // com.sun.tools.javac.code.Type t2
        end local 2 // com.sun.tools.javac.code.Type t1
        end local 1 // com.sun.tools.javac.code.Symbol$OperatorSymbol op
        end local 0 // com.sun.tools.javac.comp.Operators$BinaryOperatorHelper this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    5     0     this  Lcom/sun/tools/javac/comp/Operators$BinaryOperatorHelper;
            0    5     1       op  Lcom/sun/tools/javac/code/Symbol$OperatorSymbol;
            0    5     2       t1  Lcom/sun/tools/javac/code/Type;
            0    5     3       t2  Lcom/sun/tools/javac/code/Type;
            1    5     4  formals  Lcom/sun/tools/javac/util/List<Lcom/sun/tools/javac/code/Type;>;
    MethodParameters:
      Name  Flags
      op    
      t1    
      t2    

  final com.sun.tools.javac.comp.Operators$BinaryOperatorHelper addBinaryOperator(com.sun.tools.javac.comp.Operators$OperatorType, com.sun.tools.javac.comp.Operators$OperatorType, com.sun.tools.javac.comp.Operators$OperatorType, int[]);
    descriptor: (Lcom/sun/tools/javac/comp/Operators$OperatorType;Lcom/sun/tools/javac/comp/Operators$OperatorType;Lcom/sun/tools/javac/comp/Operators$OperatorType;[I)Lcom/sun/tools/javac/comp/Operators$BinaryOperatorHelper;
    flags: (0x0090) ACC_FINAL, ACC_VARARGS
    Code:
      stack=7, locals=5, args_size=5
        start local 0 // com.sun.tools.javac.comp.Operators$BinaryOperatorHelper this
        start local 1 // com.sun.tools.javac.comp.Operators$OperatorType arg1
        start local 2 // com.sun.tools.javac.comp.Operators$OperatorType arg2
        start local 3 // com.sun.tools.javac.comp.Operators$OperatorType res
        start local 4 // int[] opcode
         0: .line 375
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Operators$BinaryOperatorHelper.operatorSuppliers:Lcom/sun/tools/javac/util/List;
            aload 0 /* this */
            aload 1 /* arg1 */
            aload 2 /* arg2 */
            aload 3 /* res */
            aload 4 /* opcode */
            invokedynamic get(Lcom/sun/tools/javac/comp/Operators$BinaryOperatorHelper;Lcom/sun/tools/javac/comp/Operators$OperatorType;Lcom/sun/tools/javac/comp/Operators$OperatorType;Lcom/sun/tools/javac/comp/Operators$OperatorType;[I)Ljava/util/function/Supplier;
              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;
                  com/sun/tools/javac/comp/Operators$BinaryOperatorHelper.lambda$1(Lcom/sun/tools/javac/comp/Operators$OperatorType;Lcom/sun/tools/javac/comp/Operators$OperatorType;Lcom/sun/tools/javac/comp/Operators$OperatorType;[I)Lcom/sun/tools/javac/code/Symbol$OperatorSymbol; (7)
                  ()Lcom/sun/tools/javac/code/Symbol$OperatorSymbol;
            invokevirtual com.sun.tools.javac.util.List.prepend:(Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            putfield com.sun.tools.javac.comp.Operators$BinaryOperatorHelper.operatorSuppliers:Lcom/sun/tools/javac/util/List;
         1: .line 376
            aload 0 /* this */
            areturn
        end local 4 // int[] opcode
        end local 3 // com.sun.tools.javac.comp.Operators$OperatorType res
        end local 2 // com.sun.tools.javac.comp.Operators$OperatorType arg2
        end local 1 // com.sun.tools.javac.comp.Operators$OperatorType arg1
        end local 0 // com.sun.tools.javac.comp.Operators$BinaryOperatorHelper this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lcom/sun/tools/javac/comp/Operators$BinaryOperatorHelper;
            0    2     1    arg1  Lcom/sun/tools/javac/comp/Operators$OperatorType;
            0    2     2    arg2  Lcom/sun/tools/javac/comp/Operators$OperatorType;
            0    2     3     res  Lcom/sun/tools/javac/comp/Operators$OperatorType;
            0    2     4  opcode  [I
    MethodParameters:
        Name  Flags
      arg1    
      arg2    
      res     
      opcode  

  abstract 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: (0x0400) ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      t1    
      t2    

  private boolean lambda$0(com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Type, com.sun.tools.javac.code.Symbol$OperatorSymbol);
    descriptor: (Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Symbol$OperatorSymbol;)Z
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=4, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.comp.Operators$BinaryOperatorHelper this
        start local 3 // com.sun.tools.javac.code.Symbol$OperatorSymbol op
         0: .line 359
            aload 0 /* this */
            aload 3 /* op */
            aload 1
            aload 2
            invokevirtual com.sun.tools.javac.comp.Operators$BinaryOperatorHelper.isBinaryOperatorApplicable:(Lcom/sun/tools/javac/code/Symbol$OperatorSymbol;Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;)Z
            ireturn
        end local 3 // com.sun.tools.javac.code.Symbol$OperatorSymbol op
        end local 0 // com.sun.tools.javac.comp.Operators$BinaryOperatorHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/Operators$BinaryOperatorHelper;
            0    1     3    op  Lcom/sun/tools/javac/code/Symbol$OperatorSymbol;

  private com.sun.tools.javac.code.Symbol$OperatorSymbol lambda$1(com.sun.tools.javac.comp.Operators$OperatorType, com.sun.tools.javac.comp.Operators$OperatorType, com.sun.tools.javac.comp.Operators$OperatorType, int[]);
    descriptor: (Lcom/sun/tools/javac/comp/Operators$OperatorType;Lcom/sun/tools/javac/comp/Operators$OperatorType;Lcom/sun/tools/javac/comp/Operators$OperatorType;[I)Lcom/sun/tools/javac/code/Symbol$OperatorSymbol;
    flags: (0x1002) ACC_PRIVATE, ACC_SYNTHETIC
    Code:
      stack=5, locals=5, args_size=5
        start local 0 // com.sun.tools.javac.comp.Operators$BinaryOperatorHelper this
         0: .line 375
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Operators$BinaryOperatorHelper.this$0:Lcom/sun/tools/javac/comp/Operators;
            aload 0 /* this */
            getfield com.sun.tools.javac.comp.Operators$BinaryOperatorHelper.name:Lcom/sun/tools/javac/util/Name;
            aload 1
            aload 2
            invokestatic com.sun.tools.javac.util.List.of:(Ljava/lang/Object;Ljava/lang/Object;)Lcom/sun/tools/javac/util/List;
            aload 3
            aload 4
            invokevirtual com.sun.tools.javac.comp.Operators.makeOperator:(Lcom/sun/tools/javac/util/Name;Lcom/sun/tools/javac/util/List;Lcom/sun/tools/javac/comp/Operators$OperatorType;[I)Lcom/sun/tools/javac/code/Symbol$OperatorSymbol;
            areturn
        end local 0 // com.sun.tools.javac.comp.Operators$BinaryOperatorHelper this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/comp/Operators$BinaryOperatorHelper;
}
Signature: Lcom/sun/tools/javac/comp/Operators$OperatorHelper;Ljava/util/function/BiPredicate<Lcom/sun/tools/javac/code/Type;Lcom/sun/tools/javac/code/Type;>;
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
  abstract OperatorHelper = com.sun.tools.javac.comp.Operators$OperatorHelper of com.sun.tools.javac.comp.Operators
  final OperatorType = com.sun.tools.javac.comp.Operators$OperatorType of com.sun.tools.javac.comp.Operators
  public final Tag = com.sun.tools.javac.tree.JCTree$Tag of com.sun.tools.javac.tree.JCTree
  public final Lookup = java.lang.invoke.MethodHandles$Lookup of java.lang.invoke.MethodHandles