final class com.oracle.truffle.api.TruffleFile$Walker implements java.lang.Iterable<com.oracle.truffle.api.TruffleFile$Walker$Event>
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.TruffleFile$Walker
  super_class: java.lang.Object
{
  private final com.oracle.truffle.api.TruffleFile start;
    descriptor: Lcom/oracle/truffle/api/TruffleFile;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final int maxDepth;
    descriptor: I
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final boolean followSymLinks;
    descriptor: Z
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private com.oracle.truffle.api.TruffleFile$Walker$IteratorImpl currentIterator;
    descriptor: Lcom/oracle/truffle/api/TruffleFile$Walker$IteratorImpl;
    flags: (0x0002) ACC_PRIVATE

  void <init>(com.oracle.truffle.api.TruffleFile, int, java.nio.file.FileVisitOption[]);
    descriptor: (Lcom/oracle/truffle/api/TruffleFile;I[Ljava/nio/file/FileVisitOption;)V
    flags: (0x0080) ACC_VARARGS
    Code:
      stack=2, locals=9, args_size=4
        start local 0 // com.oracle.truffle.api.TruffleFile$Walker this
        start local 1 // com.oracle.truffle.api.TruffleFile start
        start local 2 // int maxDepth
        start local 3 // java.nio.file.FileVisitOption[] options
         0: .line 2318
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 2319
            aload 0 /* this */
            aload 1 /* start */
            putfield com.oracle.truffle.api.TruffleFile$Walker.start:Lcom/oracle/truffle/api/TruffleFile;
         2: .line 2320
            aload 0 /* this */
            iload 2 /* maxDepth */
            putfield com.oracle.truffle.api.TruffleFile$Walker.maxDepth:I
         3: .line 2321
            iconst_0
            istore 4 /* followSymLinksTmp */
        start local 4 // boolean followSymLinksTmp
         4: .line 2322
            aload 3 /* options */
            dup
            astore 8
            arraylength
            istore 7
            iconst_0
            istore 6
            goto 10
      StackMap locals: com.oracle.truffle.api.TruffleFile$Walker com.oracle.truffle.api.TruffleFile int java.nio.file.FileVisitOption[] int top int int java.nio.file.FileVisitOption[]
      StackMap stack:
         5: aload 8
            iload 6
            aaload
            astore 5 /* option */
        start local 5 // java.nio.file.FileVisitOption option
         6: .line 2323
            aload 5 /* option */
            getstatic java.nio.file.FileVisitOption.FOLLOW_LINKS:Ljava/nio/file/FileVisitOption;
            if_acmpne 9
         7: .line 2324
            iconst_1
            istore 4 /* followSymLinksTmp */
         8: .line 2325
            goto 11
        end local 5 // java.nio.file.FileVisitOption option
         9: .line 2322
      StackMap locals:
      StackMap stack:
            iinc 6 1
      StackMap locals:
      StackMap stack:
        10: iload 6
            iload 7
            if_icmplt 5
        11: .line 2328
      StackMap locals: com.oracle.truffle.api.TruffleFile$Walker com.oracle.truffle.api.TruffleFile int java.nio.file.FileVisitOption[] int
      StackMap stack:
            aload 0 /* this */
            iload 4 /* followSymLinksTmp */
            putfield com.oracle.truffle.api.TruffleFile$Walker.followSymLinks:Z
        12: .line 2329
            return
        end local 4 // boolean followSymLinksTmp
        end local 3 // java.nio.file.FileVisitOption[] options
        end local 2 // int maxDepth
        end local 1 // com.oracle.truffle.api.TruffleFile start
        end local 0 // com.oracle.truffle.api.TruffleFile$Walker this
      LocalVariableTable:
        Start  End  Slot               Name  Signature
            0   13     0               this  Lcom/oracle/truffle/api/TruffleFile$Walker;
            0   13     1              start  Lcom/oracle/truffle/api/TruffleFile;
            0   13     2           maxDepth  I
            0   13     3            options  [Ljava/nio/file/FileVisitOption;
            4   13     4  followSymLinksTmp  Z
            6    9     5             option  Ljava/nio/file/FileVisitOption;
    MethodParameters:
          Name  Flags
      start     
      maxDepth  
      options   

  public java.util.Iterator<com.oracle.truffle.api.TruffleFile$Walker$Event> iterator();
    descriptor: ()Ljava/util/Iterator;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleFile$Walker this
         0: .line 2333
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleFile$Walker.currentIterator:Lcom/oracle/truffle/api/TruffleFile$Walker$IteratorImpl;
            ifnull 2
         1: .line 2334
            new java.lang.IllegalStateException
            dup
            ldc "Multiple iterators are not allowed."
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 2336
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            new com.oracle.truffle.api.TruffleFile$Walker$IteratorImpl
            dup
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleFile$Walker.start:Lcom/oracle/truffle/api/TruffleFile;
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleFile$Walker.maxDepth:I
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleFile$Walker.followSymLinks:Z
            invokespecial com.oracle.truffle.api.TruffleFile$Walker$IteratorImpl.<init>:(Lcom/oracle/truffle/api/TruffleFile;IZ)V
            putfield com.oracle.truffle.api.TruffleFile$Walker.currentIterator:Lcom/oracle/truffle/api/TruffleFile$Walker$IteratorImpl;
         3: .line 2337
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleFile$Walker.currentIterator:Lcom/oracle/truffle/api/TruffleFile$Walker$IteratorImpl;
            areturn
        end local 0 // com.oracle.truffle.api.TruffleFile$Walker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lcom/oracle/truffle/api/TruffleFile$Walker;
    Signature: ()Ljava/util/Iterator<Lcom/oracle/truffle/api/TruffleFile$Walker$Event;>;

  void pop();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleFile$Walker this
         0: .line 2341
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleFile$Walker.currentIterator:Lcom/oracle/truffle/api/TruffleFile$Walker$IteratorImpl;
            getfield com.oracle.truffle.api.TruffleFile$Walker$IteratorImpl.stack:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifne 4
         1: .line 2343
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleFile$Walker.currentIterator:Lcom/oracle/truffle/api/TruffleFile$Walker$IteratorImpl;
            getfield com.oracle.truffle.api.TruffleFile$Walker$IteratorImpl.stack:Ljava/util/Deque;
            invokeinterface java.util.Deque.removeLast:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleFile$Walker$IteratorImpl$Dir
            invokevirtual com.oracle.truffle.api.TruffleFile$Walker$IteratorImpl$Dir.close:()V
         2: .line 2344
            goto 4
      StackMap locals:
      StackMap stack: java.io.IOException
         3: pop
         4: .line 2347
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.api.TruffleFile$Walker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lcom/oracle/truffle/api/TruffleFile$Walker;
      Exception table:
        from    to  target  type
           1     2       3  Class java.io.IOException

  void skipRemainingSiblings();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.TruffleFile$Walker this
         0: .line 2350
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleFile$Walker.currentIterator:Lcom/oracle/truffle/api/TruffleFile$Walker$IteratorImpl;
            getfield com.oracle.truffle.api.TruffleFile$Walker$IteratorImpl.stack:Ljava/util/Deque;
            invokeinterface java.util.Deque.isEmpty:()Z
            ifne 2
         1: .line 2351
            aload 0 /* this */
            getfield com.oracle.truffle.api.TruffleFile$Walker.currentIterator:Lcom/oracle/truffle/api/TruffleFile$Walker$IteratorImpl;
            getfield com.oracle.truffle.api.TruffleFile$Walker$IteratorImpl.stack:Ljava/util/Deque;
            invokeinterface java.util.Deque.peekLast:()Ljava/lang/Object;
            checkcast com.oracle.truffle.api.TruffleFile$Walker$IteratorImpl$Dir
            iconst_1
            invokevirtual com.oracle.truffle.api.TruffleFile$Walker$IteratorImpl$Dir.setSkipped:(Z)V
         2: .line 2353
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.oracle.truffle.api.TruffleFile$Walker this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/oracle/truffle/api/TruffleFile$Walker;
}
Signature: Ljava/lang/Object;Ljava/lang/Iterable<Lcom/oracle/truffle/api/TruffleFile$Walker$Event;>;
SourceFile: "TruffleFile.java"
NestHost: com.oracle.truffle.api.TruffleFile
InnerClasses:
  private final Walker = com.oracle.truffle.api.TruffleFile$Walker of com.oracle.truffle.api.TruffleFile
  Event = com.oracle.truffle.api.TruffleFile$Walker$Event of com.oracle.truffle.api.TruffleFile$Walker
  private IteratorImpl = com.oracle.truffle.api.TruffleFile$Walker$IteratorImpl of com.oracle.truffle.api.TruffleFile$Walker
  private final Dir = com.oracle.truffle.api.TruffleFile$Walker$IteratorImpl$Dir of com.oracle.truffle.api.TruffleFile$Walker$IteratorImpl