public class org.eclipse.jdt.internal.corext.dom.ASTNodeFactory
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.corext.dom.ASTNodeFactory
  super_class: java.lang.Object
{
  private static final java.lang.String STATEMENT_HEADER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "class __X__ { void __x__() { "

  private static final java.lang.String STATEMENT_FOOTER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "}}"

  private static final java.lang.String TYPE_HEADER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "class __X__ { abstract "

  private static final java.lang.String TYPE_FOOTER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: " __f__(); }}"

  private static final java.lang.String TYPEPARAM_HEADER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "class __X__ { abstract <"

  private static final java.lang.String TYPEPARAM_FOOTER;
    descriptor: Ljava/lang/String;
    flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
    ConstantValue: "> void __f__(); }}"

  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.corext.dom.ASTNodeFactory this
         0: .line 85
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 87
            return
        end local 0 // org.eclipse.jdt.internal.corext.dom.ASTNodeFactory this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/corext/dom/ASTNodeFactory;

  public static org.eclipse.jdt.core.dom.ASTNode newStatement(org.eclipse.jdt.core.dom.AST, java.lang.String);
    descriptor: (Lorg/eclipse/jdt/core/dom/AST;Ljava/lang/String;)Lorg/eclipse/jdt/core/dom/ASTNode;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=6, args_size=2
        start local 0 // org.eclipse.jdt.core.dom.AST ast
        start local 1 // java.lang.String content
         0: .line 90
            new java.lang.StringBuilder
            dup
            ldc "class __X__ { void __x__() { "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 2 /* buffer */
        start local 2 // java.lang.StringBuilder buffer
         1: .line 91
            aload 2 /* buffer */
            aload 1 /* content */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 92
            aload 2 /* buffer */
            ldc "}}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 93
            aload 0 /* ast */
            invokevirtual org.eclipse.jdt.core.dom.AST.apiLevel:()I
            invokestatic org.eclipse.jdt.core.dom.ASTParser.newParser:(I)Lorg/eclipse/jdt/core/dom/ASTParser;
            astore 3 /* p */
        start local 3 // org.eclipse.jdt.core.dom.ASTParser p
         4: .line 94
            aload 3 /* p */
            aload 2 /* buffer */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            invokevirtual org.eclipse.jdt.core.dom.ASTParser.setSource:([C)V
         5: .line 95
            aload 3 /* p */
            aconst_null
            invokevirtual org.eclipse.jdt.core.dom.ASTParser.createAST:(Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/jdt/core/dom/ASTNode;
            checkcast org.eclipse.jdt.core.dom.CompilationUnit
            astore 4 /* root */
        start local 4 // org.eclipse.jdt.core.dom.CompilationUnit root
         6: .line 96
            aload 0 /* ast */
            aload 4 /* root */
            ldc "class __X__ { void __x__() { "
            invokevirtual java.lang.String.length:()I
            aload 1 /* content */
            invokevirtual java.lang.String.length:()I
            invokestatic org.eclipse.jdt.core.dom.NodeFinder.perform:(Lorg/eclipse/jdt/core/dom/ASTNode;II)Lorg/eclipse/jdt/core/dom/ASTNode;
            invokestatic org.eclipse.jdt.core.dom.ASTNode.copySubtree:(Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/ASTNode;)Lorg/eclipse/jdt/core/dom/ASTNode;
            astore 5 /* result */
        start local 5 // org.eclipse.jdt.core.dom.ASTNode result
         7: .line 97
            aload 5 /* result */
            new org.eclipse.jdt.internal.corext.dom.ASTNodeFactory$PositionClearer
            dup
            invokespecial org.eclipse.jdt.internal.corext.dom.ASTNodeFactory$PositionClearer.<init>:()V
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.accept:(Lorg/eclipse/jdt/core/dom/ASTVisitor;)V
         8: .line 98
            aload 5 /* result */
            areturn
        end local 5 // org.eclipse.jdt.core.dom.ASTNode result
        end local 4 // org.eclipse.jdt.core.dom.CompilationUnit root
        end local 3 // org.eclipse.jdt.core.dom.ASTParser p
        end local 2 // java.lang.StringBuilder buffer
        end local 1 // java.lang.String content
        end local 0 // org.eclipse.jdt.core.dom.AST ast
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0      ast  Lorg/eclipse/jdt/core/dom/AST;
            0    9     1  content  Ljava/lang/String;
            1    9     2   buffer  Ljava/lang/StringBuilder;
            4    9     3        p  Lorg/eclipse/jdt/core/dom/ASTParser;
            6    9     4     root  Lorg/eclipse/jdt/core/dom/CompilationUnit;
            7    9     5   result  Lorg/eclipse/jdt/core/dom/ASTNode;
    MethodParameters:
         Name  Flags
      ast      
      content  

  public static org.eclipse.jdt.core.dom.Name newName(org.eclipse.jdt.core.dom.AST, java.lang.String);
    descriptor: (Lorg/eclipse/jdt/core/dom/AST;Ljava/lang/String;)Lorg/eclipse/jdt/core/dom/Name;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.core.dom.AST ast
        start local 1 // java.lang.String qualifiedName
         0: .line 102
            aload 0 /* ast */
            aload 1 /* qualifiedName */
            invokevirtual org.eclipse.jdt.core.dom.AST.newName:(Ljava/lang/String;)Lorg/eclipse/jdt/core/dom/Name;
            areturn
        end local 1 // java.lang.String qualifiedName
        end local 0 // org.eclipse.jdt.core.dom.AST ast
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0            ast  Lorg/eclipse/jdt/core/dom/AST;
            0    1     1  qualifiedName  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      ast            
      qualifiedName  

  public static org.eclipse.jdt.core.dom.TypeParameter newTypeParameter(org.eclipse.jdt.core.dom.AST, java.lang.String);
    descriptor: (Lorg/eclipse/jdt/core/dom/AST;Ljava/lang/String;)Lorg/eclipse/jdt/core/dom/TypeParameter;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // org.eclipse.jdt.core.dom.AST ast
        start local 1 // java.lang.String content
         0: .line 106
            new java.lang.StringBuilder
            dup
            ldc "class __X__ { abstract <"
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 2 /* buffer */
        start local 2 // java.lang.StringBuilder buffer
         1: .line 107
            aload 2 /* buffer */
            aload 1 /* content */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 108
            aload 2 /* buffer */
            ldc "> void __f__(); }}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 109
            aload 0 /* ast */
            invokevirtual org.eclipse.jdt.core.dom.AST.apiLevel:()I
            invokestatic org.eclipse.jdt.core.dom.ASTParser.newParser:(I)Lorg/eclipse/jdt/core/dom/ASTParser;
            astore 3 /* p */
        start local 3 // org.eclipse.jdt.core.dom.ASTParser p
         4: .line 110
            aload 3 /* p */
            aload 2 /* buffer */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            invokevirtual org.eclipse.jdt.core.dom.ASTParser.setSource:([C)V
         5: .line 111
            aload 3 /* p */
            aconst_null
            invokevirtual org.eclipse.jdt.core.dom.ASTParser.createAST:(Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/jdt/core/dom/ASTNode;
            checkcast org.eclipse.jdt.core.dom.CompilationUnit
            astore 4 /* root */
        start local 4 // org.eclipse.jdt.core.dom.CompilationUnit root
         6: .line 112
            aload 4 /* root */
            invokevirtual org.eclipse.jdt.core.dom.CompilationUnit.types:()Ljava/util/List;
            astore 5 /* list */
        start local 5 // java.util.List list
         7: .line 113
            aload 5 /* list */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.dom.TypeDeclaration
            astore 6 /* typeDecl */
        start local 6 // org.eclipse.jdt.core.dom.TypeDeclaration typeDecl
         8: .line 114
            aload 6 /* typeDecl */
            invokevirtual org.eclipse.jdt.core.dom.TypeDeclaration.getMethods:()[Lorg/eclipse/jdt/core/dom/MethodDeclaration;
            iconst_0
            aaload
            astore 7 /* methodDecl */
        start local 7 // org.eclipse.jdt.core.dom.MethodDeclaration methodDecl
         9: .line 115
            aload 7 /* methodDecl */
            invokevirtual org.eclipse.jdt.core.dom.MethodDeclaration.typeParameters:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.dom.TypeParameter
            astore 8 /* tp */
        start local 8 // org.eclipse.jdt.core.dom.TypeParameter tp
        10: .line 116
            aload 0 /* ast */
            aload 8 /* tp */
            invokestatic org.eclipse.jdt.core.dom.ASTNode.copySubtree:(Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/ASTNode;)Lorg/eclipse/jdt/core/dom/ASTNode;
            astore 9 /* result */
        start local 9 // org.eclipse.jdt.core.dom.ASTNode result
        11: .line 117
            aload 9 /* result */
            new org.eclipse.jdt.internal.corext.dom.ASTNodeFactory$PositionClearer
            dup
            invokespecial org.eclipse.jdt.internal.corext.dom.ASTNodeFactory$PositionClearer.<init>:()V
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.accept:(Lorg/eclipse/jdt/core/dom/ASTVisitor;)V
        12: .line 118
            aload 9 /* result */
            checkcast org.eclipse.jdt.core.dom.TypeParameter
            areturn
        end local 9 // org.eclipse.jdt.core.dom.ASTNode result
        end local 8 // org.eclipse.jdt.core.dom.TypeParameter tp
        end local 7 // org.eclipse.jdt.core.dom.MethodDeclaration methodDecl
        end local 6 // org.eclipse.jdt.core.dom.TypeDeclaration typeDecl
        end local 5 // java.util.List list
        end local 4 // org.eclipse.jdt.core.dom.CompilationUnit root
        end local 3 // org.eclipse.jdt.core.dom.ASTParser p
        end local 2 // java.lang.StringBuilder buffer
        end local 1 // java.lang.String content
        end local 0 // org.eclipse.jdt.core.dom.AST ast
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0         ast  Lorg/eclipse/jdt/core/dom/AST;
            0   13     1     content  Ljava/lang/String;
            1   13     2      buffer  Ljava/lang/StringBuilder;
            4   13     3           p  Lorg/eclipse/jdt/core/dom/ASTParser;
            6   13     4        root  Lorg/eclipse/jdt/core/dom/CompilationUnit;
            7   13     5        list  Ljava/util/List<Lorg/eclipse/jdt/core/dom/AbstractTypeDeclaration;>;
            8   13     6    typeDecl  Lorg/eclipse/jdt/core/dom/TypeDeclaration;
            9   13     7  methodDecl  Lorg/eclipse/jdt/core/dom/MethodDeclaration;
           10   13     8          tp  Lorg/eclipse/jdt/core/dom/TypeParameter;
           11   13     9      result  Lorg/eclipse/jdt/core/dom/ASTNode;
    MethodParameters:
         Name  Flags
      ast      
      content  

  public static org.eclipse.jdt.core.dom.Type newType(org.eclipse.jdt.core.dom.AST, java.lang.String);
    descriptor: (Lorg/eclipse/jdt/core/dom/AST;Ljava/lang/String;)Lorg/eclipse/jdt/core/dom/Type;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=10, args_size=2
        start local 0 // org.eclipse.jdt.core.dom.AST ast
        start local 1 // java.lang.String content
         0: .line 123
            new java.lang.StringBuilder
            dup
            ldc "class __X__ { abstract "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            astore 2 /* buffer */
        start local 2 // java.lang.StringBuilder buffer
         1: .line 124
            aload 2 /* buffer */
            aload 1 /* content */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         2: .line 125
            aload 2 /* buffer */
            ldc " __f__(); }}"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            pop
         3: .line 126
            aload 0 /* ast */
            invokevirtual org.eclipse.jdt.core.dom.AST.apiLevel:()I
            invokestatic org.eclipse.jdt.core.dom.ASTParser.newParser:(I)Lorg/eclipse/jdt/core/dom/ASTParser;
            astore 3 /* p */
        start local 3 // org.eclipse.jdt.core.dom.ASTParser p
         4: .line 127
            aload 3 /* p */
            aload 2 /* buffer */
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            invokevirtual org.eclipse.jdt.core.dom.ASTParser.setSource:([C)V
         5: .line 128
            aload 3 /* p */
            aconst_null
            invokevirtual org.eclipse.jdt.core.dom.ASTParser.createAST:(Lorg/eclipse/core/runtime/IProgressMonitor;)Lorg/eclipse/jdt/core/dom/ASTNode;
            checkcast org.eclipse.jdt.core.dom.CompilationUnit
            astore 4 /* root */
        start local 4 // org.eclipse.jdt.core.dom.CompilationUnit root
         6: .line 129
            aload 4 /* root */
            invokevirtual org.eclipse.jdt.core.dom.CompilationUnit.types:()Ljava/util/List;
            astore 5 /* list */
        start local 5 // java.util.List list
         7: .line 130
            aload 5 /* list */
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.dom.TypeDeclaration
            astore 6 /* typeDecl */
        start local 6 // org.eclipse.jdt.core.dom.TypeDeclaration typeDecl
         8: .line 131
            aload 6 /* typeDecl */
            invokevirtual org.eclipse.jdt.core.dom.TypeDeclaration.getMethods:()[Lorg/eclipse/jdt/core/dom/MethodDeclaration;
            iconst_0
            aaload
            astore 7 /* methodDecl */
        start local 7 // org.eclipse.jdt.core.dom.MethodDeclaration methodDecl
         9: .line 132
            aload 7 /* methodDecl */
            invokevirtual org.eclipse.jdt.core.dom.MethodDeclaration.getReturnType2:()Lorg/eclipse/jdt/core/dom/Type;
            astore 8 /* type */
        start local 8 // org.eclipse.jdt.core.dom.ASTNode type
        10: .line 133
            aload 0 /* ast */
            aload 8 /* type */
            invokestatic org.eclipse.jdt.core.dom.ASTNode.copySubtree:(Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/ASTNode;)Lorg/eclipse/jdt/core/dom/ASTNode;
            astore 9 /* result */
        start local 9 // org.eclipse.jdt.core.dom.ASTNode result
        11: .line 134
            aload 9 /* result */
            new org.eclipse.jdt.internal.corext.dom.ASTNodeFactory$PositionClearer
            dup
            invokespecial org.eclipse.jdt.internal.corext.dom.ASTNodeFactory$PositionClearer.<init>:()V
            invokevirtual org.eclipse.jdt.core.dom.ASTNode.accept:(Lorg/eclipse/jdt/core/dom/ASTVisitor;)V
        12: .line 135
            aload 9 /* result */
            checkcast org.eclipse.jdt.core.dom.Type
            areturn
        end local 9 // org.eclipse.jdt.core.dom.ASTNode result
        end local 8 // org.eclipse.jdt.core.dom.ASTNode type
        end local 7 // org.eclipse.jdt.core.dom.MethodDeclaration methodDecl
        end local 6 // org.eclipse.jdt.core.dom.TypeDeclaration typeDecl
        end local 5 // java.util.List list
        end local 4 // org.eclipse.jdt.core.dom.CompilationUnit root
        end local 3 // org.eclipse.jdt.core.dom.ASTParser p
        end local 2 // java.lang.StringBuilder buffer
        end local 1 // java.lang.String content
        end local 0 // org.eclipse.jdt.core.dom.AST ast
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   13     0         ast  Lorg/eclipse/jdt/core/dom/AST;
            0   13     1     content  Ljava/lang/String;
            1   13     2      buffer  Ljava/lang/StringBuilder;
            4   13     3           p  Lorg/eclipse/jdt/core/dom/ASTParser;
            6   13     4        root  Lorg/eclipse/jdt/core/dom/CompilationUnit;
            7   13     5        list  Ljava/util/List<Lorg/eclipse/jdt/core/dom/AbstractTypeDeclaration;>;
            8   13     6    typeDecl  Lorg/eclipse/jdt/core/dom/TypeDeclaration;
            9   13     7  methodDecl  Lorg/eclipse/jdt/core/dom/MethodDeclaration;
           10   13     8        type  Lorg/eclipse/jdt/core/dom/ASTNode;
           11   13     9      result  Lorg/eclipse/jdt/core/dom/ASTNode;
    MethodParameters:
         Name  Flags
      ast      
      content  

  public static org.eclipse.jdt.core.dom.ArrayType newArrayType(org.eclipse.jdt.core.dom.Type);
    descriptor: (Lorg/eclipse/jdt/core/dom/Type;)Lorg/eclipse/jdt/core/dom/ArrayType;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.eclipse.jdt.core.dom.Type type
         0: .line 148
            aload 0 /* type */
            instanceof org.eclipse.jdt.core.dom.ArrayType
            ifeq 5
         1: .line 149
            aload 0 /* type */
            invokevirtual org.eclipse.jdt.core.dom.Type.getAST:()Lorg/eclipse/jdt/core/dom/AST;
            invokevirtual org.eclipse.jdt.core.dom.AST.newDimension:()Lorg/eclipse/jdt/core/dom/Dimension;
            astore 1 /* dimension */
        start local 1 // org.eclipse.jdt.core.dom.Dimension dimension
         2: .line 150
            aload 0 /* type */
            checkcast org.eclipse.jdt.core.dom.ArrayType
            astore 2 /* arrayType */
        start local 2 // org.eclipse.jdt.core.dom.ArrayType arrayType
         3: .line 151
            aload 2 /* arrayType */
            invokevirtual org.eclipse.jdt.core.dom.ArrayType.dimensions:()Ljava/util/List;
            iconst_0
            aload 1 /* dimension */
            invokeinterface java.util.List.add:(ILjava/lang/Object;)V
         4: .line 152
            aload 2 /* arrayType */
            areturn
        end local 2 // org.eclipse.jdt.core.dom.ArrayType arrayType
        end local 1 // org.eclipse.jdt.core.dom.Dimension dimension
         5: .line 154
      StackMap locals:
      StackMap stack:
            aload 0 /* type */
            invokevirtual org.eclipse.jdt.core.dom.Type.getAST:()Lorg/eclipse/jdt/core/dom/AST;
            aload 0 /* type */
            invokevirtual org.eclipse.jdt.core.dom.AST.newArrayType:(Lorg/eclipse/jdt/core/dom/Type;)Lorg/eclipse/jdt/core/dom/ArrayType;
            areturn
        end local 0 // org.eclipse.jdt.core.dom.Type type
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       type  Lorg/eclipse/jdt/core/dom/Type;
            2    5     1  dimension  Lorg/eclipse/jdt/core/dom/Dimension;
            3    5     2  arrayType  Lorg/eclipse/jdt/core/dom/ArrayType;
    MethodParameters:
      Name  Flags
      type  

  public static org.eclipse.jdt.core.dom.Type newType(org.eclipse.jdt.core.dom.AST, org.eclipse.jdt.core.dom.VariableDeclaration);
    descriptor: (Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/VariableDeclaration;)Lorg/eclipse/jdt/core/dom/Type;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.core.dom.AST ast
        start local 1 // org.eclipse.jdt.core.dom.VariableDeclaration declaration
         0: .line 166
            aload 0 /* ast */
            aload 1 /* declaration */
            aconst_null
            aconst_null
            invokestatic org.eclipse.jdt.internal.corext.dom.ASTNodeFactory.newType:(Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/VariableDeclaration;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;)Lorg/eclipse/jdt/core/dom/Type;
            areturn
        end local 1 // org.eclipse.jdt.core.dom.VariableDeclaration declaration
        end local 0 // org.eclipse.jdt.core.dom.AST ast
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0          ast  Lorg/eclipse/jdt/core/dom/AST;
            0    1     1  declaration  Lorg/eclipse/jdt/core/dom/VariableDeclaration;
    MethodParameters:
             Name  Flags
      ast          
      declaration  

  public static org.eclipse.jdt.core.dom.Type newType(org.eclipse.jdt.core.dom.AST, org.eclipse.jdt.core.dom.VariableDeclaration, org.eclipse.jdt.core.dom.rewrite.ImportRewrite, org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext);
    descriptor: (Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/VariableDeclaration;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;)Lorg/eclipse/jdt/core/dom/Type;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.eclipse.jdt.core.dom.AST ast
        start local 1 // org.eclipse.jdt.core.dom.VariableDeclaration declaration
        start local 2 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite importRewrite
        start local 3 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext context
         0: .line 183
            aload 1 /* declaration */
            instanceof org.eclipse.jdt.core.dom.VariableDeclarationFragment
            ifeq 2
            aload 1 /* declaration */
            invokevirtual org.eclipse.jdt.core.dom.VariableDeclaration.getParent:()Lorg/eclipse/jdt/core/dom/ASTNode;
            instanceof org.eclipse.jdt.core.dom.LambdaExpression
            ifeq 2
         1: .line 184
            aload 1 /* declaration */
            invokevirtual org.eclipse.jdt.core.dom.VariableDeclaration.getParent:()Lorg/eclipse/jdt/core/dom/ASTNode;
            checkcast org.eclipse.jdt.core.dom.LambdaExpression
            aload 1 /* declaration */
            checkcast org.eclipse.jdt.core.dom.VariableDeclarationFragment
            aload 0 /* ast */
            aload 2 /* importRewrite */
            aload 3 /* context */
            invokestatic org.eclipse.jdt.internal.corext.dom.ASTNodeFactory.newType:(Lorg/eclipse/jdt/core/dom/LambdaExpression;Lorg/eclipse/jdt/core/dom/VariableDeclarationFragment;Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;)Lorg/eclipse/jdt/core/dom/Type;
            areturn
         2: .line 187
      StackMap locals:
      StackMap stack:
            aload 1 /* declaration */
            invokestatic org.eclipse.jdt.internal.corext.dom.ASTNodes.getType:(Lorg/eclipse/jdt/core/dom/VariableDeclaration;)Lorg/eclipse/jdt/core/dom/Type;
            astore 4 /* type */
        start local 4 // org.eclipse.jdt.core.dom.Type type
         3: .line 188
            aload 1 /* declaration */
            instanceof org.eclipse.jdt.core.dom.SingleVariableDeclaration
            ifeq 17
         4: .line 189
            aload 1 /* declaration */
            checkcast org.eclipse.jdt.core.dom.SingleVariableDeclaration
            invokevirtual org.eclipse.jdt.core.dom.SingleVariableDeclaration.getType:()Lorg/eclipse/jdt/core/dom/Type;
            astore 5 /* type2 */
        start local 5 // org.eclipse.jdt.core.dom.Type type2
         5: .line 190
            aload 5 /* type2 */
            instanceof org.eclipse.jdt.core.dom.UnionType
            ifeq 17
         6: .line 191
            aload 5 /* type2 */
            invokevirtual org.eclipse.jdt.core.dom.Type.resolveBinding:()Lorg/eclipse/jdt/core/dom/ITypeBinding;
            astore 6 /* typeBinding */
        start local 6 // org.eclipse.jdt.core.dom.ITypeBinding typeBinding
         7: .line 192
            aload 6 /* typeBinding */
            ifnull 15
         8: .line 193
            aload 2 /* importRewrite */
            ifnull 11
         9: .line 194
            aload 2 /* importRewrite */
            aload 6 /* typeBinding */
            aload 0 /* ast */
            aload 3 /* context */
            invokevirtual org.eclipse.jdt.core.dom.rewrite.ImportRewrite.addImport:(Lorg/eclipse/jdt/core/dom/ITypeBinding;Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;)Lorg/eclipse/jdt/core/dom/Type;
            astore 4 /* type */
        10: .line 195
            aload 4 /* type */
            areturn
        11: .line 197
      StackMap locals: org.eclipse.jdt.core.dom.Type org.eclipse.jdt.core.dom.Type org.eclipse.jdt.core.dom.ITypeBinding
      StackMap stack:
            aload 6 /* typeBinding */
            invokeinterface org.eclipse.jdt.core.dom.ITypeBinding.getQualifiedName:()Ljava/lang/String;
            astore 7 /* qualifiedName */
        start local 7 // java.lang.String qualifiedName
        12: .line 198
            aload 7 /* qualifiedName */
            invokevirtual java.lang.String.length:()I
            ifle 15
        13: .line 199
            aload 0 /* ast */
            aload 0 /* ast */
            aload 7 /* qualifiedName */
            invokevirtual org.eclipse.jdt.core.dom.AST.newName:(Ljava/lang/String;)Lorg/eclipse/jdt/core/dom/Name;
            invokevirtual org.eclipse.jdt.core.dom.AST.newSimpleType:(Lorg/eclipse/jdt/core/dom/Name;)Lorg/eclipse/jdt/core/dom/SimpleType;
            astore 4 /* type */
        14: .line 200
            aload 4 /* type */
            areturn
        end local 7 // java.lang.String qualifiedName
        15: .line 205
      StackMap locals:
      StackMap stack:
            aload 5 /* type2 */
            checkcast org.eclipse.jdt.core.dom.UnionType
            invokevirtual org.eclipse.jdt.core.dom.UnionType.types:()Ljava/util/List;
            iconst_0
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.dom.Type
            astore 4 /* type */
        16: .line 206
            aload 4 /* type */
            areturn
        end local 6 // org.eclipse.jdt.core.dom.ITypeBinding typeBinding
        end local 5 // org.eclipse.jdt.core.dom.Type type2
        17: .line 210
      StackMap locals:
      StackMap stack:
            aload 0 /* ast */
            aload 4 /* type */
            invokestatic org.eclipse.jdt.core.dom.ASTNode.copySubtree:(Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/ASTNode;)Lorg/eclipse/jdt/core/dom/ASTNode;
            checkcast org.eclipse.jdt.core.dom.Type
            astore 4 /* type */
        18: .line 212
            aload 1 /* declaration */
            invokevirtual org.eclipse.jdt.core.dom.VariableDeclaration.extraDimensions:()Ljava/util/List;
            astore 5 /* extraDimensions */
        start local 5 // java.util.List extraDimensions
        19: .line 213
            aload 5 /* extraDimensions */
            invokeinterface java.util.List.isEmpty:()Z
            ifne 26
        20: .line 215
            aload 4 /* type */
            instanceof org.eclipse.jdt.core.dom.ArrayType
            ifeq 23
        21: .line 216
            aload 4 /* type */
            checkcast org.eclipse.jdt.core.dom.ArrayType
            astore 6 /* arrayType */
        start local 6 // org.eclipse.jdt.core.dom.ArrayType arrayType
        22: .line 217
            goto 25
        end local 6 // org.eclipse.jdt.core.dom.ArrayType arrayType
        23: .line 218
      StackMap locals: java.util.List
      StackMap stack:
            aload 0 /* ast */
            aload 4 /* type */
            iconst_0
            invokevirtual org.eclipse.jdt.core.dom.AST.newArrayType:(Lorg/eclipse/jdt/core/dom/Type;I)Lorg/eclipse/jdt/core/dom/ArrayType;
            astore 6 /* arrayType */
        start local 6 // org.eclipse.jdt.core.dom.ArrayType arrayType
        24: .line 219
            aload 6 /* arrayType */
            astore 4 /* type */
        25: .line 221
      StackMap locals: org.eclipse.jdt.core.dom.ArrayType
      StackMap stack:
            aload 6 /* arrayType */
            invokevirtual org.eclipse.jdt.core.dom.ArrayType.dimensions:()Ljava/util/List;
            aload 0 /* ast */
            aload 5 /* extraDimensions */
            invokestatic org.eclipse.jdt.core.dom.ASTNode.copySubtrees:(Lorg/eclipse/jdt/core/dom/AST;Ljava/util/List;)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
        end local 6 // org.eclipse.jdt.core.dom.ArrayType arrayType
        26: .line 223
      StackMap locals:
      StackMap stack:
            aload 4 /* type */
            areturn
        end local 5 // java.util.List extraDimensions
        end local 4 // org.eclipse.jdt.core.dom.Type type
        end local 3 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext context
        end local 2 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite importRewrite
        end local 1 // org.eclipse.jdt.core.dom.VariableDeclaration declaration
        end local 0 // org.eclipse.jdt.core.dom.AST ast
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0   27     0              ast  Lorg/eclipse/jdt/core/dom/AST;
            0   27     1      declaration  Lorg/eclipse/jdt/core/dom/VariableDeclaration;
            0   27     2    importRewrite  Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;
            0   27     3          context  Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;
            3   27     4             type  Lorg/eclipse/jdt/core/dom/Type;
            5   17     5            type2  Lorg/eclipse/jdt/core/dom/Type;
            7   17     6      typeBinding  Lorg/eclipse/jdt/core/dom/ITypeBinding;
           12   15     7    qualifiedName  Ljava/lang/String;
           19   27     5  extraDimensions  Ljava/util/List<Lorg/eclipse/jdt/core/dom/Dimension;>;
           22   23     6        arrayType  Lorg/eclipse/jdt/core/dom/ArrayType;
           24   26     6        arrayType  Lorg/eclipse/jdt/core/dom/ArrayType;
    MethodParameters:
               Name  Flags
      ast            
      declaration    
      importRewrite  
      context        

  private static org.eclipse.jdt.core.dom.Type newType(org.eclipse.jdt.core.dom.LambdaExpression, org.eclipse.jdt.core.dom.VariableDeclarationFragment, org.eclipse.jdt.core.dom.AST, org.eclipse.jdt.core.dom.rewrite.ImportRewrite, org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext);
    descriptor: (Lorg/eclipse/jdt/core/dom/LambdaExpression;Lorg/eclipse/jdt/core/dom/VariableDeclarationFragment;Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;)Lorg/eclipse/jdt/core/dom/Type;
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=10, args_size=5
        start local 0 // org.eclipse.jdt.core.dom.LambdaExpression lambdaExpression
        start local 1 // org.eclipse.jdt.core.dom.VariableDeclarationFragment declaration
        start local 2 // org.eclipse.jdt.core.dom.AST ast
        start local 3 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite importRewrite
        start local 4 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext context
         0: .line 227
            aload 0 /* lambdaExpression */
            invokevirtual org.eclipse.jdt.core.dom.LambdaExpression.resolveMethodBinding:()Lorg/eclipse/jdt/core/dom/IMethodBinding;
            astore 5 /* method */
        start local 5 // org.eclipse.jdt.core.dom.IMethodBinding method
         1: .line 228
            aload 5 /* method */
            ifnull 10
         2: .line 229
            aload 5 /* method */
            invokeinterface org.eclipse.jdt.core.dom.IMethodBinding.getParameterTypes:()[Lorg/eclipse/jdt/core/dom/ITypeBinding;
            astore 6 /* parameterTypes */
        start local 6 // org.eclipse.jdt.core.dom.ITypeBinding[] parameterTypes
         3: .line 230
            aload 0 /* lambdaExpression */
            invokevirtual org.eclipse.jdt.core.dom.LambdaExpression.parameters:()Ljava/util/List;
            aload 1 /* declaration */
            invokeinterface java.util.List.indexOf:(Ljava/lang/Object;)I
            istore 7 /* index */
        start local 7 // int index
         4: .line 231
            aload 6 /* parameterTypes */
            iload 7 /* index */
            aaload
            astore 8 /* typeBinding */
        start local 8 // org.eclipse.jdt.core.dom.ITypeBinding typeBinding
         5: .line 232
            aload 3 /* importRewrite */
            ifnull 7
         6: .line 233
            aload 3 /* importRewrite */
            aload 8 /* typeBinding */
            aload 2 /* ast */
            aload 4 /* context */
            invokevirtual org.eclipse.jdt.core.dom.rewrite.ImportRewrite.addImport:(Lorg/eclipse/jdt/core/dom/ITypeBinding;Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;)Lorg/eclipse/jdt/core/dom/Type;
            areturn
         7: .line 235
      StackMap locals: org.eclipse.jdt.core.dom.LambdaExpression org.eclipse.jdt.core.dom.VariableDeclarationFragment org.eclipse.jdt.core.dom.AST org.eclipse.jdt.core.dom.rewrite.ImportRewrite org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext org.eclipse.jdt.core.dom.IMethodBinding org.eclipse.jdt.core.dom.ITypeBinding[] int org.eclipse.jdt.core.dom.ITypeBinding
      StackMap stack:
            aload 8 /* typeBinding */
            invokeinterface org.eclipse.jdt.core.dom.ITypeBinding.getQualifiedName:()Ljava/lang/String;
            astore 9 /* qualifiedName */
        start local 9 // java.lang.String qualifiedName
         8: .line 236
            aload 9 /* qualifiedName */
            invokevirtual java.lang.String.length:()I
            ifle 10
         9: .line 237
            aload 2 /* ast */
            aload 9 /* qualifiedName */
            invokestatic org.eclipse.jdt.internal.corext.dom.ASTNodeFactory.newType:(Lorg/eclipse/jdt/core/dom/AST;Ljava/lang/String;)Lorg/eclipse/jdt/core/dom/Type;
            areturn
        end local 9 // java.lang.String qualifiedName
        end local 8 // org.eclipse.jdt.core.dom.ITypeBinding typeBinding
        end local 7 // int index
        end local 6 // org.eclipse.jdt.core.dom.ITypeBinding[] parameterTypes
        10: .line 242
      StackMap locals:
      StackMap stack:
            aload 2 /* ast */
            aload 2 /* ast */
            ldc "Object"
            invokevirtual org.eclipse.jdt.core.dom.AST.newSimpleName:(Ljava/lang/String;)Lorg/eclipse/jdt/core/dom/SimpleName;
            invokevirtual org.eclipse.jdt.core.dom.AST.newSimpleType:(Lorg/eclipse/jdt/core/dom/Name;)Lorg/eclipse/jdt/core/dom/SimpleType;
            areturn
        end local 5 // org.eclipse.jdt.core.dom.IMethodBinding method
        end local 4 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext context
        end local 3 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite importRewrite
        end local 2 // org.eclipse.jdt.core.dom.AST ast
        end local 1 // org.eclipse.jdt.core.dom.VariableDeclarationFragment declaration
        end local 0 // org.eclipse.jdt.core.dom.LambdaExpression lambdaExpression
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0   11     0  lambdaExpression  Lorg/eclipse/jdt/core/dom/LambdaExpression;
            0   11     1       declaration  Lorg/eclipse/jdt/core/dom/VariableDeclarationFragment;
            0   11     2               ast  Lorg/eclipse/jdt/core/dom/AST;
            0   11     3     importRewrite  Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;
            0   11     4           context  Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;
            1   11     5            method  Lorg/eclipse/jdt/core/dom/IMethodBinding;
            3   10     6    parameterTypes  [Lorg/eclipse/jdt/core/dom/ITypeBinding;
            4   10     7             index  I
            5   10     8       typeBinding  Lorg/eclipse/jdt/core/dom/ITypeBinding;
            8   10     9     qualifiedName  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      lambdaExpression  
      declaration       
      ast               
      importRewrite     
      context           

  public static org.eclipse.jdt.core.dom.Type newNonVarType(org.eclipse.jdt.core.dom.AST, org.eclipse.jdt.core.dom.VariableDeclaration, org.eclipse.jdt.core.dom.rewrite.ImportRewrite, org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext);
    descriptor: (Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/VariableDeclaration;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;)Lorg/eclipse/jdt/core/dom/Type;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=5, locals=8, args_size=4
        start local 0 // org.eclipse.jdt.core.dom.AST ast
        start local 1 // org.eclipse.jdt.core.dom.VariableDeclaration declaration
        start local 2 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite importRewrite
        start local 3 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext context
         0: .line 246
            aload 1 /* declaration */
            invokevirtual org.eclipse.jdt.core.dom.VariableDeclaration.getAST:()Lorg/eclipse/jdt/core/dom/AST;
            invokevirtual org.eclipse.jdt.core.dom.AST.apiLevel:()I
            bipush 10
            if_icmpge 2
         1: .line 247
            aload 0 /* ast */
            aload 1 /* declaration */
            aload 2 /* importRewrite */
            aload 3 /* context */
            invokestatic org.eclipse.jdt.internal.corext.dom.ASTNodeFactory.newType:(Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/VariableDeclaration;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;)Lorg/eclipse/jdt/core/dom/Type;
            areturn
         2: .line 250
      StackMap locals:
      StackMap stack:
            aload 1 /* declaration */
            instanceof org.eclipse.jdt.core.dom.VariableDeclarationFragment
            ifeq 4
            aload 1 /* declaration */
            invokevirtual org.eclipse.jdt.core.dom.VariableDeclaration.getParent:()Lorg/eclipse/jdt/core/dom/ASTNode;
            instanceof org.eclipse.jdt.core.dom.LambdaExpression
            ifeq 4
         3: .line 251
            aload 1 /* declaration */
            invokevirtual org.eclipse.jdt.core.dom.VariableDeclaration.getParent:()Lorg/eclipse/jdt/core/dom/ASTNode;
            checkcast org.eclipse.jdt.core.dom.LambdaExpression
            aload 1 /* declaration */
            checkcast org.eclipse.jdt.core.dom.VariableDeclarationFragment
            aload 0 /* ast */
            aload 2 /* importRewrite */
            aload 3 /* context */
            invokestatic org.eclipse.jdt.internal.corext.dom.ASTNodeFactory.newType:(Lorg/eclipse/jdt/core/dom/LambdaExpression;Lorg/eclipse/jdt/core/dom/VariableDeclarationFragment;Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;)Lorg/eclipse/jdt/core/dom/Type;
            areturn
         4: .line 254
      StackMap locals:
      StackMap stack:
            aload 1 /* declaration */
            invokestatic org.eclipse.jdt.internal.corext.dom.ASTNodes.getType:(Lorg/eclipse/jdt/core/dom/VariableDeclaration;)Lorg/eclipse/jdt/core/dom/Type;
            astore 4 /* type */
        start local 4 // org.eclipse.jdt.core.dom.Type type
         5: .line 255
            aconst_null
            astore 5 /* finalType */
        start local 5 // org.eclipse.jdt.core.dom.Type finalType
         6: .line 256
            aload 1 /* declaration */
            instanceof org.eclipse.jdt.core.dom.SingleVariableDeclaration
            ifeq 9
         7: .line 257
            aload 1 /* declaration */
            checkcast org.eclipse.jdt.core.dom.SingleVariableDeclaration
            invokevirtual org.eclipse.jdt.core.dom.SingleVariableDeclaration.getType:()Lorg/eclipse/jdt/core/dom/Type;
            astore 5 /* finalType */
         8: .line 258
            goto 11
      StackMap locals: org.eclipse.jdt.core.dom.Type org.eclipse.jdt.core.dom.Type
      StackMap stack:
         9: aload 4 /* type */
            ifnull 11
        10: .line 259
            aload 4 /* type */
            astore 5 /* finalType */
        11: .line 261
      StackMap locals:
      StackMap stack:
            aload 5 /* finalType */
            ifnull 22
            aload 5 /* finalType */
            invokevirtual org.eclipse.jdt.core.dom.Type.isVar:()Z
            ifeq 22
        12: .line 262
            aload 5 /* finalType */
            invokevirtual org.eclipse.jdt.core.dom.Type.resolveBinding:()Lorg/eclipse/jdt/core/dom/ITypeBinding;
            astore 6 /* typeBinding */
        start local 6 // org.eclipse.jdt.core.dom.ITypeBinding typeBinding
        13: .line 263
            aload 6 /* typeBinding */
            ifnull 21
        14: .line 264
            aload 2 /* importRewrite */
            ifnull 17
        15: .line 265
            aload 2 /* importRewrite */
            aload 6 /* typeBinding */
            aload 0 /* ast */
            aload 3 /* context */
            invokevirtual org.eclipse.jdt.core.dom.rewrite.ImportRewrite.addImport:(Lorg/eclipse/jdt/core/dom/ITypeBinding;Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;)Lorg/eclipse/jdt/core/dom/Type;
            astore 5 /* finalType */
        16: .line 266
            aload 5 /* finalType */
            areturn
        17: .line 268
      StackMap locals: org.eclipse.jdt.core.dom.ITypeBinding
      StackMap stack:
            aload 6 /* typeBinding */
            invokeinterface org.eclipse.jdt.core.dom.ITypeBinding.getQualifiedName:()Ljava/lang/String;
            astore 7 /* qualifiedName */
        start local 7 // java.lang.String qualifiedName
        18: .line 269
            aload 7 /* qualifiedName */
            invokevirtual java.lang.String.length:()I
            ifle 21
        19: .line 270
            aload 0 /* ast */
            aload 0 /* ast */
            aload 7 /* qualifiedName */
            invokevirtual org.eclipse.jdt.core.dom.AST.newName:(Ljava/lang/String;)Lorg/eclipse/jdt/core/dom/Name;
            invokevirtual org.eclipse.jdt.core.dom.AST.newSimpleType:(Lorg/eclipse/jdt/core/dom/Name;)Lorg/eclipse/jdt/core/dom/SimpleType;
            astore 5 /* finalType */
        20: .line 271
            aload 5 /* finalType */
            areturn
        end local 7 // java.lang.String qualifiedName
        21: .line 275
      StackMap locals:
      StackMap stack:
            aload 5 /* finalType */
            areturn
        end local 6 // org.eclipse.jdt.core.dom.ITypeBinding typeBinding
        22: .line 277
      StackMap locals:
      StackMap stack:
            aload 0 /* ast */
            aload 1 /* declaration */
            aload 2 /* importRewrite */
            aload 3 /* context */
            invokestatic org.eclipse.jdt.internal.corext.dom.ASTNodeFactory.newType:(Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/VariableDeclaration;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;)Lorg/eclipse/jdt/core/dom/Type;
            areturn
        end local 5 // org.eclipse.jdt.core.dom.Type finalType
        end local 4 // org.eclipse.jdt.core.dom.Type type
        end local 3 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext context
        end local 2 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite importRewrite
        end local 1 // org.eclipse.jdt.core.dom.VariableDeclaration declaration
        end local 0 // org.eclipse.jdt.core.dom.AST ast
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   23     0            ast  Lorg/eclipse/jdt/core/dom/AST;
            0   23     1    declaration  Lorg/eclipse/jdt/core/dom/VariableDeclaration;
            0   23     2  importRewrite  Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;
            0   23     3        context  Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;
            5   23     4           type  Lorg/eclipse/jdt/core/dom/Type;
            6   23     5      finalType  Lorg/eclipse/jdt/core/dom/Type;
           13   22     6    typeBinding  Lorg/eclipse/jdt/core/dom/ITypeBinding;
           18   21     7  qualifiedName  Ljava/lang/String;
    MethodParameters:
               Name  Flags
      ast            
      declaration    
      importRewrite  
      context        

  public static org.eclipse.jdt.core.dom.Type newReturnType(org.eclipse.jdt.core.dom.LambdaExpression, org.eclipse.jdt.core.dom.AST, org.eclipse.jdt.core.dom.rewrite.ImportRewrite, org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext);
    descriptor: (Lorg/eclipse/jdt/core/dom/LambdaExpression;Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;)Lorg/eclipse/jdt/core/dom/Type;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // org.eclipse.jdt.core.dom.LambdaExpression lambdaExpression
        start local 1 // org.eclipse.jdt.core.dom.AST ast
        start local 2 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite importRewrite
        start local 3 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext context
         0: .line 295
            aload 0 /* lambdaExpression */
            invokevirtual org.eclipse.jdt.core.dom.LambdaExpression.resolveMethodBinding:()Lorg/eclipse/jdt/core/dom/IMethodBinding;
            astore 4 /* method */
        start local 4 // org.eclipse.jdt.core.dom.IMethodBinding method
         1: .line 296
            aload 4 /* method */
            ifnull 8
         2: .line 297
            aload 4 /* method */
            invokeinterface org.eclipse.jdt.core.dom.IMethodBinding.getReturnType:()Lorg/eclipse/jdt/core/dom/ITypeBinding;
            astore 5 /* returnTypeBinding */
        start local 5 // org.eclipse.jdt.core.dom.ITypeBinding returnTypeBinding
         3: .line 298
            aload 2 /* importRewrite */
            ifnull 5
         4: .line 299
            aload 2 /* importRewrite */
            aload 5 /* returnTypeBinding */
            aload 1 /* ast */
            invokevirtual org.eclipse.jdt.core.dom.rewrite.ImportRewrite.addImport:(Lorg/eclipse/jdt/core/dom/ITypeBinding;Lorg/eclipse/jdt/core/dom/AST;)Lorg/eclipse/jdt/core/dom/Type;
            areturn
         5: .line 301
      StackMap locals: org.eclipse.jdt.core.dom.IMethodBinding org.eclipse.jdt.core.dom.ITypeBinding
      StackMap stack:
            aload 5 /* returnTypeBinding */
            invokeinterface org.eclipse.jdt.core.dom.ITypeBinding.getQualifiedName:()Ljava/lang/String;
            astore 6 /* qualifiedName */
        start local 6 // java.lang.String qualifiedName
         6: .line 302
            aload 6 /* qualifiedName */
            invokevirtual java.lang.String.length:()I
            ifle 8
         7: .line 303
            aload 1 /* ast */
            aload 6 /* qualifiedName */
            invokestatic org.eclipse.jdt.internal.corext.dom.ASTNodeFactory.newType:(Lorg/eclipse/jdt/core/dom/AST;Ljava/lang/String;)Lorg/eclipse/jdt/core/dom/Type;
            areturn
        end local 6 // java.lang.String qualifiedName
        end local 5 // org.eclipse.jdt.core.dom.ITypeBinding returnTypeBinding
         8: .line 308
      StackMap locals:
      StackMap stack:
            aload 1 /* ast */
            aload 1 /* ast */
            ldc "Object"
            invokevirtual org.eclipse.jdt.core.dom.AST.newSimpleName:(Ljava/lang/String;)Lorg/eclipse/jdt/core/dom/SimpleName;
            invokevirtual org.eclipse.jdt.core.dom.AST.newSimpleType:(Lorg/eclipse/jdt/core/dom/Name;)Lorg/eclipse/jdt/core/dom/SimpleType;
            areturn
        end local 4 // org.eclipse.jdt.core.dom.IMethodBinding method
        end local 3 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext context
        end local 2 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite importRewrite
        end local 1 // org.eclipse.jdt.core.dom.AST ast
        end local 0 // org.eclipse.jdt.core.dom.LambdaExpression lambdaExpression
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0    9     0   lambdaExpression  Lorg/eclipse/jdt/core/dom/LambdaExpression;
            0    9     1                ast  Lorg/eclipse/jdt/core/dom/AST;
            0    9     2      importRewrite  Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;
            0    9     3            context  Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;
            1    9     4             method  Lorg/eclipse/jdt/core/dom/IMethodBinding;
            3    8     5  returnTypeBinding  Lorg/eclipse/jdt/core/dom/ITypeBinding;
            6    8     6      qualifiedName  Ljava/lang/String;
    MethodParameters:
                  Name  Flags
      lambdaExpression  
      ast               
      importRewrite     
      context           

  public static org.eclipse.jdt.core.dom.Expression newDefaultExpression(org.eclipse.jdt.core.dom.AST, org.eclipse.jdt.core.dom.Type, int);
    descriptor: (Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/Type;I)Lorg/eclipse/jdt/core/dom/Expression;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.core.dom.AST ast
        start local 1 // org.eclipse.jdt.core.dom.Type type
        start local 2 // int extraDimensions
         0: .line 322
            iload 2 /* extraDimensions */
            ifne 7
            aload 1 /* type */
            invokevirtual org.eclipse.jdt.core.dom.Type.isPrimitiveType:()Z
            ifeq 7
         1: .line 323
            aload 1 /* type */
            checkcast org.eclipse.jdt.core.dom.PrimitiveType
            astore 3 /* primitiveType */
        start local 3 // org.eclipse.jdt.core.dom.PrimitiveType primitiveType
         2: .line 324
            aload 3 /* primitiveType */
            invokevirtual org.eclipse.jdt.core.dom.PrimitiveType.getPrimitiveTypeCode:()Lorg/eclipse/jdt/core/dom/PrimitiveType$Code;
            getstatic org.eclipse.jdt.core.dom.PrimitiveType.BOOLEAN:Lorg/eclipse/jdt/core/dom/PrimitiveType$Code;
            if_acmpne 4
         3: .line 325
            aload 0 /* ast */
            iconst_0
            invokevirtual org.eclipse.jdt.core.dom.AST.newBooleanLiteral:(Z)Lorg/eclipse/jdt/core/dom/BooleanLiteral;
            areturn
         4: .line 326
      StackMap locals: org.eclipse.jdt.core.dom.PrimitiveType
      StackMap stack:
            aload 3 /* primitiveType */
            invokevirtual org.eclipse.jdt.core.dom.PrimitiveType.getPrimitiveTypeCode:()Lorg/eclipse/jdt/core/dom/PrimitiveType$Code;
            getstatic org.eclipse.jdt.core.dom.PrimitiveType.VOID:Lorg/eclipse/jdt/core/dom/PrimitiveType$Code;
            if_acmpne 6
         5: .line 327
            aconst_null
            areturn
         6: .line 329
      StackMap locals:
      StackMap stack:
            aload 0 /* ast */
            ldc "0"
            invokevirtual org.eclipse.jdt.core.dom.AST.newNumberLiteral:(Ljava/lang/String;)Lorg/eclipse/jdt/core/dom/NumberLiteral;
            areturn
        end local 3 // org.eclipse.jdt.core.dom.PrimitiveType primitiveType
         7: .line 332
      StackMap locals:
      StackMap stack:
            aload 0 /* ast */
            invokevirtual org.eclipse.jdt.core.dom.AST.newNullLiteral:()Lorg/eclipse/jdt/core/dom/NullLiteral;
            areturn
        end local 2 // int extraDimensions
        end local 1 // org.eclipse.jdt.core.dom.Type type
        end local 0 // org.eclipse.jdt.core.dom.AST ast
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    8     0              ast  Lorg/eclipse/jdt/core/dom/AST;
            0    8     1             type  Lorg/eclipse/jdt/core/dom/Type;
            0    8     2  extraDimensions  I
            2    7     3    primitiveType  Lorg/eclipse/jdt/core/dom/PrimitiveType;
    MethodParameters:
                 Name  Flags
      ast              
      type             
      extraDimensions  

  public static org.eclipse.jdt.core.dom.Expression newDefaultExpression(org.eclipse.jdt.core.dom.AST, org.eclipse.jdt.core.dom.ITypeBinding);
    descriptor: (Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/ITypeBinding;)Lorg/eclipse/jdt/core/dom/Expression;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=5, args_size=2
        start local 0 // org.eclipse.jdt.core.dom.AST ast
        start local 1 // org.eclipse.jdt.core.dom.ITypeBinding type
         0: .line 345
            aload 1 /* type */
            invokeinterface org.eclipse.jdt.core.dom.ITypeBinding.isPrimitive:()Z
            ifeq 11
         1: .line 346
            aload 1 /* type */
            invokeinterface org.eclipse.jdt.core.dom.ITypeBinding.getName:()Ljava/lang/String;
            astore 2 /* name */
        start local 2 // java.lang.String name
         2: .line 347
            iconst_0
            istore 3 /* nomatch */
        start local 3 // boolean nomatch
         3: .line 348
            aload 2 /* name */
            ifnull 9
            aload 2 /* name */
            dup
            astore 4
            invokevirtual java.lang.String.hashCode:()I
            lookupswitch { // 2
              3625364: 4
             64711720: 5
              default: 8
          }
      StackMap locals: java.lang.String int java.lang.String
      StackMap stack:
         4: aload 4
            ldc "void"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 7
            goto 8
      StackMap locals:
      StackMap stack:
         5: aload 4
            ldc "boolean"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 6
            goto 8
         6: .line 350
      StackMap locals:
      StackMap stack:
            aload 0 /* ast */
            iconst_0
            invokevirtual org.eclipse.jdt.core.dom.AST.newBooleanLiteral:(Z)Lorg/eclipse/jdt/core/dom/BooleanLiteral;
            areturn
         7: .line 352
      StackMap locals:
      StackMap stack:
            aconst_null
            areturn
         8: .line 354
      StackMap locals:
      StackMap stack:
            iconst_1
            istore 3 /* nomatch */
         9: .line 357
      StackMap locals:
      StackMap stack:
            iload 3 /* nomatch */
            ifeq 11
        10: .line 358
            aload 0 /* ast */
            ldc "0"
            invokevirtual org.eclipse.jdt.core.dom.AST.newNumberLiteral:(Ljava/lang/String;)Lorg/eclipse/jdt/core/dom/NumberLiteral;
            areturn
        end local 3 // boolean nomatch
        end local 2 // java.lang.String name
        11: .line 361
      StackMap locals:
      StackMap stack:
            aload 0 /* ast */
            invokevirtual org.eclipse.jdt.core.dom.AST.newNullLiteral:()Lorg/eclipse/jdt/core/dom/NullLiteral;
            areturn
        end local 1 // org.eclipse.jdt.core.dom.ITypeBinding type
        end local 0 // org.eclipse.jdt.core.dom.AST ast
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   12     0      ast  Lorg/eclipse/jdt/core/dom/AST;
            0   12     1     type  Lorg/eclipse/jdt/core/dom/ITypeBinding;
            2   11     2     name  Ljava/lang/String;
            3   11     3  nomatch  Z
    MethodParameters:
      Name  Flags
      ast   
      type  

  public static java.util.List<org.eclipse.jdt.core.dom.Modifier> newModifiers(org.eclipse.jdt.core.dom.AST, int);
    descriptor: (Lorg/eclipse/jdt/core/dom/AST;I)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // org.eclipse.jdt.core.dom.AST ast
        start local 1 // int modifiers
         0: .line 371
            aload 0 /* ast */
            iload 1 /* modifiers */
            invokevirtual org.eclipse.jdt.core.dom.AST.newModifiers:(I)Ljava/util/List;
            areturn
        end local 1 // int modifiers
        end local 0 // org.eclipse.jdt.core.dom.AST ast
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    1     0        ast  Lorg/eclipse/jdt/core/dom/AST;
            0    1     1  modifiers  I
    Signature: (Lorg/eclipse/jdt/core/dom/AST;I)Ljava/util/List<Lorg/eclipse/jdt/core/dom/Modifier;>;
    MethodParameters:
           Name  Flags
      ast        
      modifiers  

  public static java.util.List<org.eclipse.jdt.core.dom.Modifier> newModifiers(org.eclipse.jdt.core.dom.AST, java.util.List<? extends org.eclipse.jdt.core.dom.IExtendedModifier>);
    descriptor: (Lorg/eclipse/jdt/core/dom/AST;Ljava/util/List;)Ljava/util/List;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.eclipse.jdt.core.dom.AST ast
        start local 1 // java.util.List modifierNodes
         0: .line 383
            new java.util.ArrayList
            dup
            aload 1 /* modifierNodes */
            invokeinterface java.util.List.size:()I
            invokespecial java.util.ArrayList.<init>:(I)V
            astore 2 /* res */
        start local 2 // java.util.List res
         1: .line 384
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         2: goto 7
         3: .line 385
      StackMap locals: java.util.List int
      StackMap stack:
            aload 1 /* modifierNodes */
            iload 3 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            astore 4 /* curr */
        start local 4 // java.lang.Object curr
         4: .line 386
            aload 4 /* curr */
            instanceof org.eclipse.jdt.core.dom.Modifier
            ifeq 6
         5: .line 387
            aload 2 /* res */
            aload 0 /* ast */
            aload 4 /* curr */
            checkcast org.eclipse.jdt.core.dom.Modifier
            invokevirtual org.eclipse.jdt.core.dom.Modifier.getKeyword:()Lorg/eclipse/jdt/core/dom/Modifier$ModifierKeyword;
            invokevirtual org.eclipse.jdt.core.dom.AST.newModifier:(Lorg/eclipse/jdt/core/dom/Modifier$ModifierKeyword;)Lorg/eclipse/jdt/core/dom/Modifier;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 4 // java.lang.Object curr
         6: .line 384
      StackMap locals:
      StackMap stack:
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         7: iload 3 /* i */
            aload 1 /* modifierNodes */
            invokeinterface java.util.List.size:()I
            if_icmplt 3
        end local 3 // int i
         8: .line 390
            aload 2 /* res */
            areturn
        end local 2 // java.util.List res
        end local 1 // java.util.List modifierNodes
        end local 0 // org.eclipse.jdt.core.dom.AST ast
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    9     0            ast  Lorg/eclipse/jdt/core/dom/AST;
            0    9     1  modifierNodes  Ljava/util/List<+Lorg/eclipse/jdt/core/dom/IExtendedModifier;>;
            1    9     2            res  Ljava/util/List<Lorg/eclipse/jdt/core/dom/Modifier;>;
            2    8     3              i  I
            4    6     4           curr  Ljava/lang/Object;
    Signature: (Lorg/eclipse/jdt/core/dom/AST;Ljava/util/List<+Lorg/eclipse/jdt/core/dom/IExtendedModifier;>;)Ljava/util/List<Lorg/eclipse/jdt/core/dom/Modifier;>;
    MethodParameters:
               Name  Flags
      ast            
      modifierNodes  

  public static org.eclipse.jdt.core.dom.Expression newInfixExpression(org.eclipse.jdt.core.dom.AST, org.eclipse.jdt.core.dom.InfixExpression$Operator, java.util.ArrayList<org.eclipse.jdt.core.dom.Expression>);
    descriptor: (Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/InfixExpression$Operator;Ljava/util/ArrayList;)Lorg/eclipse/jdt/core/dom/Expression;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=3
        start local 0 // org.eclipse.jdt.core.dom.AST ast
        start local 1 // org.eclipse.jdt.core.dom.InfixExpression$Operator operator
        start local 2 // java.util.ArrayList operands
         0: .line 394
            aload 2 /* operands */
            invokevirtual java.util.ArrayList.size:()I
            iconst_1
            if_icmpne 2
         1: .line 395
            aload 2 /* operands */
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.dom.Expression
            areturn
         2: .line 397
      StackMap locals:
      StackMap stack:
            aload 0 /* ast */
            invokevirtual org.eclipse.jdt.core.dom.AST.newInfixExpression:()Lorg/eclipse/jdt/core/dom/InfixExpression;
            astore 3 /* result */
        start local 3 // org.eclipse.jdt.core.dom.InfixExpression result
         3: .line 398
            aload 3 /* result */
            aload 1 /* operator */
            invokevirtual org.eclipse.jdt.core.dom.InfixExpression.setOperator:(Lorg/eclipse/jdt/core/dom/InfixExpression$Operator;)V
         4: .line 399
            aload 3 /* result */
            aload 2 /* operands */
            iconst_0
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.dom.Expression
            invokevirtual org.eclipse.jdt.core.dom.InfixExpression.setLeftOperand:(Lorg/eclipse/jdt/core/dom/Expression;)V
         5: .line 400
            aload 3 /* result */
            aload 2 /* operands */
            iconst_1
            invokevirtual java.util.ArrayList.get:(I)Ljava/lang/Object;
            checkcast org.eclipse.jdt.core.dom.Expression
            invokevirtual org.eclipse.jdt.core.dom.InfixExpression.setRightOperand:(Lorg/eclipse/jdt/core/dom/Expression;)V
         6: .line 401
            aload 3 /* result */
            invokevirtual org.eclipse.jdt.core.dom.InfixExpression.extendedOperands:()Ljava/util/List;
            aload 2 /* operands */
            iconst_2
            aload 2 /* operands */
            invokevirtual java.util.ArrayList.size:()I
            invokevirtual java.util.ArrayList.subList:(II)Ljava/util/List;
            invokeinterface java.util.List.addAll:(Ljava/util/Collection;)Z
            pop
         7: .line 402
            aload 3 /* result */
            areturn
        end local 3 // org.eclipse.jdt.core.dom.InfixExpression result
        end local 2 // java.util.ArrayList operands
        end local 1 // org.eclipse.jdt.core.dom.InfixExpression$Operator operator
        end local 0 // org.eclipse.jdt.core.dom.AST ast
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    8     0       ast  Lorg/eclipse/jdt/core/dom/AST;
            0    8     1  operator  Lorg/eclipse/jdt/core/dom/InfixExpression$Operator;
            0    8     2  operands  Ljava/util/ArrayList<Lorg/eclipse/jdt/core/dom/Expression;>;
            3    8     3    result  Lorg/eclipse/jdt/core/dom/InfixExpression;
    Signature: (Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/InfixExpression$Operator;Ljava/util/ArrayList<Lorg/eclipse/jdt/core/dom/Expression;>;)Lorg/eclipse/jdt/core/dom/Expression;
    MethodParameters:
          Name  Flags
      ast       
      operator  
      operands  

  public static org.eclipse.jdt.core.dom.Type newCreationType(org.eclipse.jdt.core.dom.AST, org.eclipse.jdt.core.dom.ITypeBinding, org.eclipse.jdt.core.dom.rewrite.ImportRewrite, org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext);
    descriptor: (Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/ITypeBinding;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;)Lorg/eclipse/jdt/core/dom/Type;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=11, args_size=4
        start local 0 // org.eclipse.jdt.core.dom.AST ast
        start local 1 // org.eclipse.jdt.core.dom.ITypeBinding typeBinding
        start local 2 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite importRewrite
        start local 3 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext importContext
         0: .line 414
            aload 1 /* typeBinding */
            invokeinterface org.eclipse.jdt.core.dom.ITypeBinding.isParameterizedType:()Z
            ifeq 16
         1: .line 415
            aload 0 /* ast */
            aload 1 /* typeBinding */
            invokeinterface org.eclipse.jdt.core.dom.ITypeBinding.getTypeDeclaration:()Lorg/eclipse/jdt/core/dom/ITypeBinding;
            aload 2 /* importRewrite */
            aload 3 /* importContext */
            invokestatic org.eclipse.jdt.internal.corext.dom.ASTNodeFactory.newCreationType:(Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/ITypeBinding;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;)Lorg/eclipse/jdt/core/dom/Type;
            astore 4 /* baseType */
        start local 4 // org.eclipse.jdt.core.dom.Type baseType
         2: .line 416
            aload 3 /* importContext */
            aload 1 /* typeBinding */
            invokeinterface org.eclipse.jdt.core.dom.ITypeBinding.getTypeAnnotations:()[Lorg/eclipse/jdt/core/dom/IAnnotationBinding;
            getstatic org.eclipse.jdt.core.dom.rewrite.ImportRewrite$TypeLocation.NEW:Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$TypeLocation;
            aload 1 /* typeBinding */
            invokevirtual org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext.removeRedundantTypeAnnotations:([Lorg/eclipse/jdt/core/dom/IAnnotationBinding;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$TypeLocation;Lorg/eclipse/jdt/core/dom/ITypeBinding;)[Lorg/eclipse/jdt/core/dom/IAnnotationBinding;
            astore 5 /* typeAnnotations */
        start local 5 // org.eclipse.jdt.core.dom.IAnnotationBinding[] typeAnnotations
         3: .line 417
            aload 5 /* typeAnnotations */
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 7
      StackMap locals: org.eclipse.jdt.core.dom.AST org.eclipse.jdt.core.dom.ITypeBinding org.eclipse.jdt.core.dom.rewrite.ImportRewrite org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext org.eclipse.jdt.core.dom.Type org.eclipse.jdt.core.dom.IAnnotationBinding[] top int int org.eclipse.jdt.core.dom.IAnnotationBinding[]
      StackMap stack:
         4: aload 9
            iload 7
            aaload
            astore 6 /* typeAnnotation */
        start local 6 // org.eclipse.jdt.core.dom.IAnnotationBinding typeAnnotation
         5: .line 418
            aload 4 /* baseType */
            checkcast org.eclipse.jdt.core.dom.AnnotatableType
            invokevirtual org.eclipse.jdt.core.dom.AnnotatableType.annotations:()Ljava/util/List;
            aload 2 /* importRewrite */
            aload 6 /* typeAnnotation */
            aload 0 /* ast */
            aload 3 /* importContext */
            invokevirtual org.eclipse.jdt.core.dom.rewrite.ImportRewrite.addAnnotation:(Lorg/eclipse/jdt/core/dom/IAnnotationBinding;Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;)Lorg/eclipse/jdt/core/dom/Annotation;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 6 // org.eclipse.jdt.core.dom.IAnnotationBinding typeAnnotation
         6: .line 417
            iinc 7 1
      StackMap locals:
      StackMap stack:
         7: iload 7
            iload 8
            if_icmplt 4
         8: .line 420
            aload 0 /* ast */
            aload 4 /* baseType */
            invokevirtual org.eclipse.jdt.core.dom.AST.newParameterizedType:(Lorg/eclipse/jdt/core/dom/Type;)Lorg/eclipse/jdt/core/dom/ParameterizedType;
            astore 6 /* parameterizedType */
        start local 6 // org.eclipse.jdt.core.dom.ParameterizedType parameterizedType
         9: .line 421
            aload 1 /* typeBinding */
            invokeinterface org.eclipse.jdt.core.dom.ITypeBinding.getTypeArguments:()[Lorg/eclipse/jdt/core/dom/ITypeBinding;
            dup
            astore 10
            arraylength
            istore 9
            iconst_0
            istore 8
            goto 14
      StackMap locals: org.eclipse.jdt.core.dom.AST org.eclipse.jdt.core.dom.ITypeBinding org.eclipse.jdt.core.dom.rewrite.ImportRewrite org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext org.eclipse.jdt.core.dom.Type org.eclipse.jdt.core.dom.IAnnotationBinding[] org.eclipse.jdt.core.dom.ParameterizedType top int int org.eclipse.jdt.core.dom.ITypeBinding[]
      StackMap stack:
        10: aload 10
            iload 8
            aaload
            astore 7 /* typeArgument */
        start local 7 // org.eclipse.jdt.core.dom.ITypeBinding typeArgument
        11: .line 422
            aload 7 /* typeArgument */
            invokestatic org.eclipse.jdt.internal.corext.codemanipulation.StubUtility2Core.replaceWildcardsAndCaptures:(Lorg/eclipse/jdt/core/dom/ITypeBinding;)Lorg/eclipse/jdt/core/dom/ITypeBinding;
            astore 7 /* typeArgument */
        12: .line 423
            aload 6 /* parameterizedType */
            invokevirtual org.eclipse.jdt.core.dom.ParameterizedType.typeArguments:()Ljava/util/List;
            aload 2 /* importRewrite */
            aload 7 /* typeArgument */
            aload 0 /* ast */
            aload 3 /* importContext */
            getstatic org.eclipse.jdt.core.dom.rewrite.ImportRewrite$TypeLocation.TYPE_ARGUMENT:Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$TypeLocation;
            invokevirtual org.eclipse.jdt.core.dom.rewrite.ImportRewrite.addImport:(Lorg/eclipse/jdt/core/dom/ITypeBinding;Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$TypeLocation;)Lorg/eclipse/jdt/core/dom/Type;
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
        end local 7 // org.eclipse.jdt.core.dom.ITypeBinding typeArgument
        13: .line 421
            iinc 8 1
      StackMap locals:
      StackMap stack:
        14: iload 8
            iload 9
            if_icmplt 10
        15: .line 425
            aload 6 /* parameterizedType */
            areturn
        end local 6 // org.eclipse.jdt.core.dom.ParameterizedType parameterizedType
        end local 5 // org.eclipse.jdt.core.dom.IAnnotationBinding[] typeAnnotations
        end local 4 // org.eclipse.jdt.core.dom.Type baseType
        16: .line 427
      StackMap locals: org.eclipse.jdt.core.dom.AST org.eclipse.jdt.core.dom.ITypeBinding org.eclipse.jdt.core.dom.rewrite.ImportRewrite org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext
      StackMap stack:
            aload 2 /* importRewrite */
            aload 1 /* typeBinding */
            aload 0 /* ast */
            aload 3 /* importContext */
            getstatic org.eclipse.jdt.core.dom.rewrite.ImportRewrite$TypeLocation.NEW:Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$TypeLocation;
            invokevirtual org.eclipse.jdt.core.dom.rewrite.ImportRewrite.addImport:(Lorg/eclipse/jdt/core/dom/ITypeBinding;Lorg/eclipse/jdt/core/dom/AST;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$TypeLocation;)Lorg/eclipse/jdt/core/dom/Type;
            areturn
        end local 3 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext importContext
        end local 2 // org.eclipse.jdt.core.dom.rewrite.ImportRewrite importRewrite
        end local 1 // org.eclipse.jdt.core.dom.ITypeBinding typeBinding
        end local 0 // org.eclipse.jdt.core.dom.AST ast
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   17     0                ast  Lorg/eclipse/jdt/core/dom/AST;
            0   17     1        typeBinding  Lorg/eclipse/jdt/core/dom/ITypeBinding;
            0   17     2      importRewrite  Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite;
            0   17     3      importContext  Lorg/eclipse/jdt/core/dom/rewrite/ImportRewrite$ImportRewriteContext;
            2   16     4           baseType  Lorg/eclipse/jdt/core/dom/Type;
            3   16     5    typeAnnotations  [Lorg/eclipse/jdt/core/dom/IAnnotationBinding;
            5    6     6     typeAnnotation  Lorg/eclipse/jdt/core/dom/IAnnotationBinding;
            9   16     6  parameterizedType  Lorg/eclipse/jdt/core/dom/ParameterizedType;
           11   13     7       typeArgument  Lorg/eclipse/jdt/core/dom/ITypeBinding;
    MethodParameters:
               Name  Flags
      ast            
      typeBinding    
      importRewrite  
      importContext  
}
SourceFile: "ASTNodeFactory.java"
NestMembers:
  org.eclipse.jdt.internal.corext.dom.ASTNodeFactory$PositionClearer
InnerClasses:
  public Operator = org.eclipse.jdt.core.dom.InfixExpression$Operator of org.eclipse.jdt.core.dom.InfixExpression
  public ModifierKeyword = org.eclipse.jdt.core.dom.Modifier$ModifierKeyword of org.eclipse.jdt.core.dom.Modifier
  public Code = org.eclipse.jdt.core.dom.PrimitiveType$Code of org.eclipse.jdt.core.dom.PrimitiveType
  public abstract ImportRewriteContext = org.eclipse.jdt.core.dom.rewrite.ImportRewrite$ImportRewriteContext of org.eclipse.jdt.core.dom.rewrite.ImportRewrite
  public final TypeLocation = org.eclipse.jdt.core.dom.rewrite.ImportRewrite$TypeLocation of org.eclipse.jdt.core.dom.rewrite.ImportRewrite
  private PositionClearer = org.eclipse.jdt.internal.corext.dom.ASTNodeFactory$PositionClearer of org.eclipse.jdt.internal.corext.dom.ASTNodeFactory