public abstract class com.sun.source.util.Trees
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.sun.source.util.Trees
  super_class: java.lang.Object
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.source.util.Trees this
         0: .line 54
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
            return
        end local 0 // com.sun.source.util.Trees this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/source/util/Trees;

  public static com.sun.source.util.Trees instance(javax.tools.JavaCompiler$CompilationTask);
    descriptor: (Ljavax/tools/JavaCompiler$CompilationTask;)Lcom/sun/source/util/Trees;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=2, args_size=1
        start local 0 // javax.tools.JavaCompiler$CompilationTask task
         0: .line 62
            aload 0 /* task */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            astore 1 /* taskClassName */
        start local 1 // java.lang.String taskClassName
         1: .line 63
            aload 1 /* taskClassName */
            ldc "com.sun.tools.javac.api.JavacTaskImpl"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         2: .line 64
            aload 1 /* taskClassName */
            ldc "com.sun.tools.javac.api.BasicJavacTask"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 4
         3: .line 65
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         4: .line 66
      StackMap locals: java.lang.String
      StackMap stack:
            ldc Ljavax/tools/JavaCompiler$CompilationTask;
            aload 0 /* task */
            invokestatic com.sun.source.util.Trees.getJavacTrees:(Ljava/lang/Class;Ljava/lang/Object;)Lcom/sun/source/util/Trees;
            areturn
        end local 1 // java.lang.String taskClassName
        end local 0 // javax.tools.JavaCompiler$CompilationTask task
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           task  Ljavax/tools/JavaCompiler$CompilationTask;
            1    5     1  taskClassName  Ljava/lang/String;
    MethodParameters:
      Name  Flags
      task  

  public static com.sun.source.util.Trees instance(javax.annotation.processing.ProcessingEnvironment);
    descriptor: (Ljavax/annotation/processing/ProcessingEnvironment;)Lcom/sun/source/util/Trees;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // javax.annotation.processing.ProcessingEnvironment env
         0: .line 76
            aload 0 /* env */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            ldc "com.sun.tools.javac.processing.JavacProcessingEnvironment"
            invokevirtual java.lang.String.equals:(Ljava/lang/Object;)Z
            ifne 2
         1: .line 77
            new java.lang.IllegalArgumentException
            dup
            invokespecial java.lang.IllegalArgumentException.<init>:()V
            athrow
         2: .line 78
      StackMap locals:
      StackMap stack:
            ldc Ljavax/annotation/processing/ProcessingEnvironment;
            aload 0 /* env */
            invokestatic com.sun.source.util.Trees.getJavacTrees:(Ljava/lang/Class;Ljava/lang/Object;)Lcom/sun/source/util/Trees;
            areturn
        end local 0 // javax.annotation.processing.ProcessingEnvironment env
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0   env  Ljavax/annotation/processing/ProcessingEnvironment;
    MethodParameters:
      Name  Flags
      env   

  static com.sun.source.util.Trees getJavacTrees(java.lang.Class<?>, );
    descriptor: (Ljava/lang/Class;Ljava/lang/Object;)Lcom/sun/source/util/Trees;
    flags: (0x0008) ACC_STATIC
    Code:
      stack=6, locals=5, args_size=2
        start local 0 // java.lang.Class argType
        start local 1 // java.lang.Object arg
         0: .line 83
            aload 1 /* arg */
            invokevirtual java.lang.Object.getClass:()Ljava/lang/Class;
            invokevirtual java.lang.Class.getClassLoader:()Ljava/lang/ClassLoader;
            astore 2 /* cl */
        start local 2 // java.lang.ClassLoader cl
         1: .line 84
            ldc "com.sun.tools.javac.api.JavacTrees"
            iconst_0
            aload 2 /* cl */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 3 /* c */
        start local 3 // java.lang.Class c
         2: .line 85
            aload 0 /* argType */
            invokevirtual java.lang.Class.getName:()Ljava/lang/String;
            iconst_0
            aload 2 /* cl */
            invokestatic java.lang.Class.forName:(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;
            astore 0 /* argType */
         3: .line 86
            aload 3 /* c */
            ldc "instance"
            iconst_1
            anewarray java.lang.Class
            dup
            iconst_0
            aload 0 /* argType */
            aastore
            invokevirtual java.lang.Class.getMethod:(Ljava/lang/String;[Ljava/lang/Class;)Ljava/lang/reflect/Method;
            astore 4 /* m */
        start local 4 // java.lang.reflect.Method m
         4: .line 87
            aload 4 /* m */
            aconst_null
            iconst_1
            anewarray java.lang.Object
            dup
            iconst_0
            aload 1 /* arg */
            aastore
            invokevirtual java.lang.reflect.Method.invoke:(Ljava/lang/Object;[Ljava/lang/Object;)Ljava/lang/Object;
            checkcast com.sun.source.util.Trees
         5: areturn
        end local 4 // java.lang.reflect.Method m
        end local 3 // java.lang.Class c
        end local 2 // java.lang.ClassLoader cl
         6: .line 88
      StackMap locals:
      StackMap stack: java.lang.ReflectiveOperationException
            astore 2 /* e */
        start local 2 // java.lang.ReflectiveOperationException e
         7: .line 89
            new java.lang.AssertionError
            dup
            aload 2 /* e */
            invokespecial java.lang.AssertionError.<init>:(Ljava/lang/Object;)V
            athrow
        end local 2 // java.lang.ReflectiveOperationException e
        end local 1 // java.lang.Object arg
        end local 0 // java.lang.Class argType
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0  argType  Ljava/lang/Class<*>;
            0    8     1      arg  Ljava/lang/Object;
            1    6     2       cl  Ljava/lang/ClassLoader;
            2    6     3        c  Ljava/lang/Class<*>;
            4    6     4        m  Ljava/lang/reflect/Method;
            7    8     2        e  Ljava/lang/ReflectiveOperationException;
      Exception table:
        from    to  target  type
           0     5       6  Class java.lang.ReflectiveOperationException
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Object;)Lcom/sun/source/util/Trees;
    MethodParameters:
         Name  Flags
      argType  
      arg      

  public abstract com.sun.source.util.SourcePositions getSourcePositions();
    descriptor: ()Lcom/sun/source/util/SourcePositions;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT

  public abstract com.sun.source.tree.Tree getTree(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)Lcom/sun/source/tree/Tree;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      element  

  public abstract com.sun.source.tree.ClassTree getTree(javax.lang.model.element.TypeElement);
    descriptor: (Ljavax/lang/model/element/TypeElement;)Lcom/sun/source/tree/ClassTree;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      element  

  public abstract com.sun.source.tree.MethodTree getTree(javax.lang.model.element.ExecutableElement);
    descriptor: (Ljavax/lang/model/element/ExecutableElement;)Lcom/sun/source/tree/MethodTree;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      method  

  public abstract com.sun.source.tree.Tree getTree(javax.lang.model.element.Element, javax.lang.model.element.AnnotationMirror);
    descriptor: (Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;)Lcom/sun/source/tree/Tree;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      e     
      a     

  public abstract com.sun.source.tree.Tree getTree(javax.lang.model.element.Element, javax.lang.model.element.AnnotationMirror, javax.lang.model.element.AnnotationValue);
    descriptor: (Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;)Lcom/sun/source/tree/Tree;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      e     
      a     
      v     

  public abstract com.sun.source.util.TreePath getPath(com.sun.source.tree.CompilationUnitTree, com.sun.source.tree.Tree);
    descriptor: (Lcom/sun/source/tree/CompilationUnitTree;Lcom/sun/source/tree/Tree;)Lcom/sun/source/util/TreePath;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      unit  
      node  

  public abstract com.sun.source.util.TreePath getPath(javax.lang.model.element.Element);
    descriptor: (Ljavax/lang/model/element/Element;)Lcom/sun/source/util/TreePath;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      e     

  public abstract com.sun.source.util.TreePath getPath(javax.lang.model.element.Element, javax.lang.model.element.AnnotationMirror);
    descriptor: (Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;)Lcom/sun/source/util/TreePath;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      e     
      a     

  public abstract com.sun.source.util.TreePath getPath(javax.lang.model.element.Element, javax.lang.model.element.AnnotationMirror, javax.lang.model.element.AnnotationValue);
    descriptor: (Ljavax/lang/model/element/Element;Ljavax/lang/model/element/AnnotationMirror;Ljavax/lang/model/element/AnnotationValue;)Lcom/sun/source/util/TreePath;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      e     
      a     
      v     

  public abstract javax.lang.model.element.Element getElement(com.sun.source.util.TreePath);
    descriptor: (Lcom/sun/source/util/TreePath;)Ljavax/lang/model/element/Element;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      path  

  public abstract javax.lang.model.type.TypeMirror getTypeMirror(com.sun.source.util.TreePath);
    descriptor: (Lcom/sun/source/util/TreePath;)Ljavax/lang/model/type/TypeMirror;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      path  

  public abstract com.sun.source.tree.Scope getScope(com.sun.source.util.TreePath);
    descriptor: (Lcom/sun/source/util/TreePath;)Lcom/sun/source/tree/Scope;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      path  

  public abstract java.lang.String getDocComment(com.sun.source.util.TreePath);
    descriptor: (Lcom/sun/source/util/TreePath;)Ljava/lang/String;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      path  

  public abstract boolean isAccessible(com.sun.source.tree.Scope, javax.lang.model.element.TypeElement);
    descriptor: (Lcom/sun/source/tree/Scope;Ljavax/lang/model/element/TypeElement;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      scope  
      type   

  public abstract boolean isAccessible(com.sun.source.tree.Scope, javax.lang.model.element.Element, javax.lang.model.type.DeclaredType);
    descriptor: (Lcom/sun/source/tree/Scope;Ljavax/lang/model/element/Element;Ljavax/lang/model/type/DeclaredType;)Z
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
        Name  Flags
      scope   
      member  
      type    

  public abstract javax.lang.model.type.TypeMirror getOriginalType(javax.lang.model.type.ErrorType);
    descriptor: (Ljavax/lang/model/type/ErrorType;)Ljavax/lang/model/type/TypeMirror;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
           Name  Flags
      errorType  

  public abstract void printMessage(javax.tools.Diagnostic$Kind, java.lang.CharSequence, com.sun.source.tree.Tree, com.sun.source.tree.CompilationUnitTree);
    descriptor: (Ljavax/tools/Diagnostic$Kind;Ljava/lang/CharSequence;Lcom/sun/source/tree/Tree;Lcom/sun/source/tree/CompilationUnitTree;)V
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      kind  
      msg   
      t     
      root  

  public abstract javax.lang.model.type.TypeMirror getLub(com.sun.source.tree.CatchTree);
    descriptor: (Lcom/sun/source/tree/CatchTree;)Ljavax/lang/model/type/TypeMirror;
    flags: (0x0401) ACC_PUBLIC, ACC_ABSTRACT
    MethodParameters:
      Name  Flags
      tree  
}
SourceFile: "Trees.java"
InnerClasses:
  public final Kind = javax.tools.Diagnostic$Kind of javax.tools.Diagnostic
  public abstract CompilationTask = javax.tools.JavaCompiler$CompilationTask of javax.tools.JavaCompiler