public class com.sun.tools.javac.tree.JCTree$JCRequires extends com.sun.tools.javac.tree.JCTree$JCDirective implements com.sun.source.tree.RequiresTree
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: com.sun.tools.javac.tree.JCTree$JCRequires
  super_class: com.sun.tools.javac.tree.JCTree$JCDirective
{
  public boolean isTransitive;
    descriptor: Z
    flags: (0x0001) ACC_PUBLIC

  public boolean isStaticPhase;
    descriptor: Z
    flags: (0x0001) ACC_PUBLIC

  public com.sun.tools.javac.tree.JCTree$JCExpression moduleName;
    descriptor: Lcom/sun/tools/javac/tree/JCTree$JCExpression;
    flags: (0x0001) ACC_PUBLIC

  public com.sun.tools.javac.code.Directive$RequiresDirective directive;
    descriptor: Lcom/sun/tools/javac/code/Directive$RequiresDirective;
    flags: (0x0001) ACC_PUBLIC

  protected void <init>(boolean, boolean, com.sun.tools.javac.tree.JCTree$JCExpression);
    descriptor: (ZZLcom/sun/tools/javac/tree/JCTree$JCExpression;)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=2, locals=4, args_size=4
        start local 0 // com.sun.tools.javac.tree.JCTree$JCRequires this
        start local 1 // boolean isTransitive
        start local 2 // boolean isStaticPhase
        start local 3 // com.sun.tools.javac.tree.JCTree$JCExpression moduleName
         0: .line 2841
            aload 0 /* this */
            invokespecial com.sun.tools.javac.tree.JCTree$JCDirective.<init>:()V
         1: .line 2842
            aload 0 /* this */
            iload 1 /* isTransitive */
            putfield com.sun.tools.javac.tree.JCTree$JCRequires.isTransitive:Z
         2: .line 2843
            aload 0 /* this */
            iload 2 /* isStaticPhase */
            putfield com.sun.tools.javac.tree.JCTree$JCRequires.isStaticPhase:Z
         3: .line 2844
            aload 0 /* this */
            aload 3 /* moduleName */
            putfield com.sun.tools.javac.tree.JCTree$JCRequires.moduleName:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
         4: .line 2845
            return
        end local 3 // com.sun.tools.javac.tree.JCTree$JCExpression moduleName
        end local 2 // boolean isStaticPhase
        end local 1 // boolean isTransitive
        end local 0 // com.sun.tools.javac.tree.JCTree$JCRequires this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lcom/sun/tools/javac/tree/JCTree$JCRequires;
            0    5     1   isTransitive  Z
            0    5     2  isStaticPhase  Z
            0    5     3     moduleName  Lcom/sun/tools/javac/tree/JCTree$JCExpression;
    MethodParameters:
               Name  Flags
      isTransitive   
      isStaticPhase  
      moduleName     

  public void accept(com.sun.tools.javac.tree.JCTree$Visitor);
    descriptor: (Lcom/sun/tools/javac/tree/JCTree$Visitor;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.tools.javac.tree.JCTree$JCRequires this
        start local 1 // com.sun.tools.javac.tree.JCTree$Visitor v
         0: .line 2848
            aload 1 /* v */
            aload 0 /* this */
            invokevirtual com.sun.tools.javac.tree.JCTree$Visitor.visitRequires:(Lcom/sun/tools/javac/tree/JCTree$JCRequires;)V
            return
        end local 1 // com.sun.tools.javac.tree.JCTree$Visitor v
        end local 0 // com.sun.tools.javac.tree.JCTree$JCRequires this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCRequires;
            0    1     1     v  Lcom/sun/tools/javac/tree/JCTree$Visitor;
    MethodParameters:
      Name  Flags
      v     

  public com.sun.source.tree.Tree$Kind getKind();
    descriptor: ()Lcom/sun/source/tree/Tree$Kind;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCRequires this
         0: .line 2852
            getstatic com.sun.source.tree.Tree$Kind.REQUIRES:Lcom/sun/source/tree/Tree$Kind;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCRequires this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCRequires;

  public <R, D> R accept(com.sun.source.tree.TreeVisitor<R, D>, );
    descriptor: (Lcom/sun/source/tree/TreeVisitor;Ljava/lang/Object;)Ljava/lang/Object;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.tools.javac.tree.JCTree$JCRequires this
        start local 1 // com.sun.source.tree.TreeVisitor v
        start local 2 // java.lang.Object d
         0: .line 2857
            aload 1 /* v */
            aload 0 /* this */
            aload 2 /* d */
            invokeinterface com.sun.source.tree.TreeVisitor.visitRequires:(Lcom/sun/source/tree/RequiresTree;Ljava/lang/Object;)Ljava/lang/Object;
            areturn
        end local 2 // java.lang.Object d
        end local 1 // com.sun.source.tree.TreeVisitor v
        end local 0 // com.sun.tools.javac.tree.JCTree$JCRequires this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCRequires;
            0    1     1     v  Lcom/sun/source/tree/TreeVisitor<TR;TD;>;
            0    1     2     d  TD;
    Signature: <R:Ljava/lang/Object;D:Ljava/lang/Object;>(Lcom/sun/source/tree/TreeVisitor<TR;TD;>;TD;)TR;
    MethodParameters:
      Name  Flags
      v     
      d     

  public boolean isTransitive();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCRequires this
         0: .line 2862
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCRequires.isTransitive:Z
            ireturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCRequires this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCRequires;

  public boolean isStatic();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCRequires this
         0: .line 2867
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCRequires.isStaticPhase:Z
            ireturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCRequires this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCRequires;

  public com.sun.tools.javac.tree.JCTree$JCExpression getModuleName();
    descriptor: ()Lcom/sun/tools/javac/tree/JCTree$JCExpression;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCRequires this
         0: .line 2872
            aload 0 /* this */
            getfield com.sun.tools.javac.tree.JCTree$JCRequires.moduleName:Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCRequires this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCRequires;

  public com.sun.tools.javac.tree.JCTree$Tag getTag();
    descriptor: ()Lcom/sun/tools/javac/tree/JCTree$Tag;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.tools.javac.tree.JCTree$JCRequires this
         0: .line 2877
            getstatic com.sun.tools.javac.tree.JCTree$Tag.REQUIRES:Lcom/sun/tools/javac/tree/JCTree$Tag;
            areturn
        end local 0 // com.sun.tools.javac.tree.JCTree$JCRequires this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/tools/javac/tree/JCTree$JCRequires;

  public com.sun.source.tree.ExpressionTree getModuleName();
    descriptor: ()Lcom/sun/source/tree/ExpressionTree;
    flags: (0x1041) ACC_PUBLIC, ACC_BRIDGE, ACC_SYNTHETIC
    Code:
      stack=1, locals=1, args_size=1
         0: .line 1
            aload 0
            invokevirtual com.sun.tools.javac.tree.JCTree$JCRequires.getModuleName:()Lcom/sun/tools/javac/tree/JCTree$JCExpression;
            areturn
      LocalVariableTable:
        Start  End  Slot  Name  Signature
}
SourceFile: "JCTree.java"
NestHost: com.sun.tools.javac.tree.JCTree
InnerClasses:
  public final Kind = com.sun.source.tree.Tree$Kind of com.sun.source.tree.Tree
  public RequiresDirective = com.sun.tools.javac.code.Directive$RequiresDirective of com.sun.tools.javac.code.Directive
  public abstract JCDirective = com.sun.tools.javac.tree.JCTree$JCDirective of com.sun.tools.javac.tree.JCTree
  public abstract JCExpression = com.sun.tools.javac.tree.JCTree$JCExpression of com.sun.tools.javac.tree.JCTree
  public JCRequires = com.sun.tools.javac.tree.JCTree$JCRequires of com.sun.tools.javac.tree.JCTree
  public final Tag = com.sun.tools.javac.tree.JCTree$Tag of com.sun.tools.javac.tree.JCTree
  public abstract Visitor = com.sun.tools.javac.tree.JCTree$Visitor of com.sun.tools.javac.tree.JCTree