class com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$5 implements com.oracle.truffle.dsl.processor.expression.DSLExpression$DSLExpressionReducer
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$5
  super_class: java.lang.Object
{
  final com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory this$0;
    descriptor: Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
    flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC

  void <init>(com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory);
    descriptor: (Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$5 this
         0: .line 4533
            aload 0 /* this */
            aload 1
            putfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$5.this$0:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$5 this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$5;
    MethodParameters:
        Name  Flags
      this$0  final

  public com.oracle.truffle.dsl.processor.expression.DSLExpression visitVariable(com.oracle.truffle.dsl.processor.expression.DSLExpression$Variable);
    descriptor: (Lcom/oracle/truffle/dsl/processor/expression/DSLExpression$Variable;)Lcom/oracle/truffle/dsl/processor/expression/DSLExpression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$5 this
        start local 1 // com.oracle.truffle.dsl.processor.expression.DSLExpression$Variable binary
         0: .line 4535
            aload 1 /* binary */
            areturn
        end local 1 // com.oracle.truffle.dsl.processor.expression.DSLExpression$Variable binary
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$5 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$5;
            0    1     1  binary  Lcom/oracle/truffle/dsl/processor/expression/DSLExpression$Variable;
    MethodParameters:
        Name  Flags
      binary  

  public com.oracle.truffle.dsl.processor.expression.DSLExpression visitNegate(com.oracle.truffle.dsl.processor.expression.DSLExpression$Negate);
    descriptor: (Lcom/oracle/truffle/dsl/processor/expression/DSLExpression$Negate;)Lcom/oracle/truffle/dsl/processor/expression/DSLExpression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$5 this
        start local 1 // com.oracle.truffle.dsl.processor.expression.DSLExpression$Negate negate
         0: .line 4539
            aload 1 /* negate */
            areturn
        end local 1 // com.oracle.truffle.dsl.processor.expression.DSLExpression$Negate negate
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$5 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$5;
            0    1     1  negate  Lcom/oracle/truffle/dsl/processor/expression/DSLExpression$Negate;
    MethodParameters:
        Name  Flags
      negate  

  public com.oracle.truffle.dsl.processor.expression.DSLExpression visitCall(com.oracle.truffle.dsl.processor.expression.DSLExpression$Call);
    descriptor: (Lcom/oracle/truffle/dsl/processor/expression/DSLExpression$Call;)Lcom/oracle/truffle/dsl/processor/expression/DSLExpression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$5 this
        start local 1 // com.oracle.truffle.dsl.processor.expression.DSLExpression$Call call
         0: .line 4543
            aload 1 /* call */
            invokevirtual com.oracle.truffle.dsl.processor.expression.DSLExpression$Call.getName:()Ljava/lang/String;
            ldc "getUncached"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifeq 5
            aload 1 /* call */
            invokevirtual com.oracle.truffle.dsl.processor.expression.DSLExpression$Call.getResolvedMethod:()Ljavax/lang/model/element/ExecutableElement;
            invokeinterface javax.lang.model.element.ExecutableElement.getEnclosingElement:()Ljavax/lang/model/element/Element;
            invokeinterface javax.lang.model.element.Element.asType:()Ljavax/lang/model/type/TypeMirror;
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$5.this$0:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.LibraryFactory:Ljavax/lang/model/type/DeclaredType;
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.typeEquals:(Ljavax/lang/model/type/TypeMirror;Ljavax/lang/model/type/TypeMirror;)Z
            ifeq 5
         1: .line 4544
            new com.oracle.truffle.dsl.processor.expression.DSLExpression$Call
            dup
            aload 1 /* call */
            invokevirtual com.oracle.truffle.dsl.processor.expression.DSLExpression$Call.getReceiver:()Lcom/oracle/truffle/dsl/processor/expression/DSLExpression;
            aload 1 /* call */
            invokevirtual com.oracle.truffle.dsl.processor.expression.DSLExpression$Call.getName:()Ljava/lang/String;
            invokestatic java.util.Collections.emptyList:()Ljava/util/List;
            invokespecial com.oracle.truffle.dsl.processor.expression.DSLExpression$Call.<init>:(Lcom/oracle/truffle/dsl/processor/expression/DSLExpression;Ljava/lang/String;Ljava/util/List;)V
            astore 2 /* newCall */
        start local 2 // com.oracle.truffle.dsl.processor.expression.DSLExpression$Call newCall
         2: .line 4545
            aload 2 /* newCall */
            aload 0 /* this */
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$5.this$0:Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory;
            getfield com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory.types:Lcom/oracle/truffle/dsl/processor/TruffleTypes;
            getfield com.oracle.truffle.dsl.processor.TruffleTypes.LibraryFactory:Ljavax/lang/model/type/DeclaredType;
            ldc "getUncached"
            iconst_0
            invokestatic com.oracle.truffle.dsl.processor.java.ElementUtils.findExecutableElement:(Ljavax/lang/model/type/DeclaredType;Ljava/lang/String;I)Ljavax/lang/model/element/ExecutableElement;
            invokevirtual com.oracle.truffle.dsl.processor.expression.DSLExpression$Call.setResolvedMethod:(Ljavax/lang/model/element/ExecutableElement;)V
         3: .line 4546
            aload 2 /* newCall */
            aload 1 /* call */
            invokevirtual com.oracle.truffle.dsl.processor.expression.DSLExpression$Call.getResolvedTargetType:()Ljavax/lang/model/type/TypeMirror;
            invokevirtual com.oracle.truffle.dsl.processor.expression.DSLExpression$Call.setResolvedTargetType:(Ljavax/lang/model/type/TypeMirror;)V
         4: .line 4547
            aload 2 /* newCall */
            areturn
        end local 2 // com.oracle.truffle.dsl.processor.expression.DSLExpression$Call newCall
         5: .line 4549
      StackMap locals:
      StackMap stack:
            aload 1 /* call */
            areturn
        end local 1 // com.oracle.truffle.dsl.processor.expression.DSLExpression$Call call
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$5 this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    6     0     this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$5;
            0    6     1     call  Lcom/oracle/truffle/dsl/processor/expression/DSLExpression$Call;
            2    5     2  newCall  Lcom/oracle/truffle/dsl/processor/expression/DSLExpression$Call;
    MethodParameters:
      Name  Flags
      call  

  public com.oracle.truffle.dsl.processor.expression.DSLExpression visitBinary(com.oracle.truffle.dsl.processor.expression.DSLExpression$Binary);
    descriptor: (Lcom/oracle/truffle/dsl/processor/expression/DSLExpression$Binary;)Lcom/oracle/truffle/dsl/processor/expression/DSLExpression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=2
        start local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$5 this
        start local 1 // com.oracle.truffle.dsl.processor.expression.DSLExpression$Binary binary
         0: .line 4553
            aload 1 /* binary */
            areturn
        end local 1 // com.oracle.truffle.dsl.processor.expression.DSLExpression$Binary binary
        end local 0 // com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$5 this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    1     0    this  Lcom/oracle/truffle/dsl/processor/generator/FlatNodeGenFactory$5;
            0    1     1  binary  Lcom/oracle/truffle/dsl/processor/expression/DSLExpression$Binary;
    MethodParameters:
        Name  Flags
      binary  
}
SourceFile: "FlatNodeGenFactory.java"
EnclosingMethod: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory.substituteToDispatchedUncached:(Lcom/oracle/truffle/dsl/processor/expression/DSLExpression;)Lcom/oracle/truffle/dsl/processor/expression/DSLExpression;
NestHost: com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory
InnerClasses:
  public final Binary = com.oracle.truffle.dsl.processor.expression.DSLExpression$Binary of com.oracle.truffle.dsl.processor.expression.DSLExpression
  public final Call = com.oracle.truffle.dsl.processor.expression.DSLExpression$Call of com.oracle.truffle.dsl.processor.expression.DSLExpression
  public abstract DSLExpressionReducer = com.oracle.truffle.dsl.processor.expression.DSLExpression$DSLExpressionReducer of com.oracle.truffle.dsl.processor.expression.DSLExpression
  public final Negate = com.oracle.truffle.dsl.processor.expression.DSLExpression$Negate of com.oracle.truffle.dsl.processor.expression.DSLExpression
  public final Variable = com.oracle.truffle.dsl.processor.expression.DSLExpression$Variable of com.oracle.truffle.dsl.processor.expression.DSLExpression
  com.oracle.truffle.dsl.processor.generator.FlatNodeGenFactory$5