abstract class com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor implements com.oracle.truffle.api.nodes.NodeVisitor
  minor version: 0
  major version: 59
  flags: flags: (0x0420) ACC_SUPER, ACC_ABSTRACT
  this_class: com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor
  super_class: java.lang.Object
{
  private final com.oracle.truffle.api.instrumentation.EventBinding$Source<?> binding;
    descriptor: Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;

  private final java.util.Set<java.lang.Class<?>> providedTags;
    descriptor: Ljava/util/Set;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL
    Signature: Ljava/util/Set<Ljava/lang/Class<*>;>;

  private final com.oracle.truffle.api.nodes.RootNode rootNode;
    descriptor: Lcom/oracle/truffle/api/nodes/RootNode;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.nodes.Node instrumentedNode;
    descriptor: Lcom/oracle/truffle/api/nodes/Node;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.oracle.truffle.api.source.SourceSection instrumentedNodeSourceSection;
    descriptor: Lcom/oracle/truffle/api/source/SourceSection;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  void <init>(com.oracle.truffle.api.instrumentation.EventBinding$Source<?>, com.oracle.truffle.api.nodes.RootNode, java.util.Set<java.lang.Class<?>>, com.oracle.truffle.api.nodes.Node, com.oracle.truffle.api.source.SourceSection);
    descriptor: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
    flags: (0x0000) 
    Code:
      stack=2, locals=6, args_size=6
        start local 0 // com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor this
        start local 1 // com.oracle.truffle.api.instrumentation.EventBinding$Source binding
        start local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
        start local 3 // java.util.Set providedTags
        start local 4 // com.oracle.truffle.api.nodes.Node instrumentedNode
        start local 5 // com.oracle.truffle.api.source.SourceSection instrumentedNodeSourceSection
         0: .line 791
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 792
            aload 0 /* this */
            aload 1 /* binding */
            putfield com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor.binding:Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
         2: .line 793
            aload 0 /* this */
            aload 3 /* providedTags */
            putfield com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor.providedTags:Ljava/util/Set;
         3: .line 794
            aload 0 /* this */
            aload 2 /* rootNode */
            putfield com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor.rootNode:Lcom/oracle/truffle/api/nodes/RootNode;
         4: .line 795
            aload 0 /* this */
            aload 4 /* instrumentedNode */
            putfield com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor.instrumentedNode:Lcom/oracle/truffle/api/nodes/Node;
         5: .line 796
            aload 0 /* this */
            aload 5 /* instrumentedNodeSourceSection */
            putfield com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor.instrumentedNodeSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
         6: .line 797
            return
        end local 5 // com.oracle.truffle.api.source.SourceSection instrumentedNodeSourceSection
        end local 4 // com.oracle.truffle.api.nodes.Node instrumentedNode
        end local 3 // java.util.Set providedTags
        end local 2 // com.oracle.truffle.api.nodes.RootNode rootNode
        end local 1 // com.oracle.truffle.api.instrumentation.EventBinding$Source binding
        end local 0 // com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor this
      LocalVariableTable:
        Start  End  Slot                           Name  Signature
            0    7     0                           this  Lcom/oracle/truffle/api/instrumentation/ProbeNode$InstrumentableChildVisitor;
            0    7     1                        binding  Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;
            0    7     2                       rootNode  Lcom/oracle/truffle/api/nodes/RootNode;
            0    7     3                   providedTags  Ljava/util/Set<Ljava/lang/Class<*>;>;
            0    7     4               instrumentedNode  Lcom/oracle/truffle/api/nodes/Node;
            0    7     5  instrumentedNodeSourceSection  Lcom/oracle/truffle/api/source/SourceSection;
    Signature: (Lcom/oracle/truffle/api/instrumentation/EventBinding$Source<*>;Lcom/oracle/truffle/api/nodes/RootNode;Ljava/util/Set<Ljava/lang/Class<*>;>;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)V
    MethodParameters:
                               Name  Flags
      binding                        
      rootNode                       
      providedTags                   
      instrumentedNode               
      instrumentedNodeSourceSection  

  public final boolean visit(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=7, locals=3, args_size=2
        start local 0 // com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor this
        start local 1 // com.oracle.truffle.api.nodes.Node node
         0: .line 800
            aload 1 /* node */
            invokevirtual com.oracle.truffle.api.nodes.Node.getSourceSection:()Lcom/oracle/truffle/api/source/SourceSection;
            astore 2 /* sourceSection */
        start local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
         1: .line 801
            aload 1 /* node */
            invokestatic com.oracle.truffle.api.instrumentation.InstrumentationHandler.isInstrumentableNode:(Lcom/oracle/truffle/api/nodes/Node;)Z
            ifeq 6
         2: .line 802
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor.binding:Lcom/oracle/truffle/api/instrumentation/EventBinding$Source;
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor.providedTags:Ljava/util/Set;
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor.rootNode:Lcom/oracle/truffle/api/nodes/RootNode;
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor.instrumentedNode:Lcom/oracle/truffle/api/nodes/Node;
            aload 0 /* this */
            getfield com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor.instrumentedNodeSourceSection:Lcom/oracle/truffle/api/source/SourceSection;
            aload 1 /* node */
            aload 2 /* sourceSection */
            invokevirtual com.oracle.truffle.api.instrumentation.EventBinding$Source.isChildInstrumentedFull:(Ljava/util/Set;Lcom/oracle/truffle/api/nodes/RootNode;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/source/SourceSection;)Z
            ifeq 5
         3: .line 803
            aload 0 /* this */
            aload 1 /* node */
            invokevirtual com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor.visitChild:(Lcom/oracle/truffle/api/nodes/Node;)Z
            ifne 5
         4: .line 804
            iconst_0
            ireturn
         5: .line 807
      StackMap locals: com.oracle.truffle.api.source.SourceSection
      StackMap stack:
            iconst_1
            ireturn
         6: .line 809
      StackMap locals:
      StackMap stack:
            aload 1 /* node */
            aload 0 /* this */
            invokestatic com.oracle.truffle.api.nodes.NodeUtil.forEachChild:(Lcom/oracle/truffle/api/nodes/Node;Lcom/oracle/truffle/api/nodes/NodeVisitor;)Z
            pop
         7: .line 810
            iconst_1
            ireturn
        end local 2 // com.oracle.truffle.api.source.SourceSection sourceSection
        end local 1 // com.oracle.truffle.api.nodes.Node node
        end local 0 // com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    8     0           this  Lcom/oracle/truffle/api/instrumentation/ProbeNode$InstrumentableChildVisitor;
            0    8     1           node  Lcom/oracle/truffle/api/nodes/Node;
            1    8     2  sourceSection  Lcom/oracle/truffle/api/source/SourceSection;
    MethodParameters:
      Name  Flags
      node  

  protected abstract boolean visitChild(com.oracle.truffle.api.nodes.Node);
    descriptor: (Lcom/oracle/truffle/api/nodes/Node;)Z
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
       Name  Flags
      child  
}
SourceFile: "ProbeNode.java"
NestHost: com.oracle.truffle.api.instrumentation.ProbeNode
InnerClasses:
  final Source = com.oracle.truffle.api.instrumentation.EventBinding$Source of com.oracle.truffle.api.instrumentation.EventBinding
  private abstract InstrumentableChildVisitor = com.oracle.truffle.api.instrumentation.ProbeNode$InstrumentableChildVisitor of com.oracle.truffle.api.instrumentation.ProbeNode