public class org.eclipse.jdt.internal.core.builder.SourceFile implements org.eclipse.jdt.internal.compiler.env.ICompilationUnit
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.core.builder.SourceFile
  super_class: java.lang.Object
{
  public org.eclipse.core.resources.IFile resource;
    descriptor: Lorg/eclipse/core/resources/IFile;
    flags: (0x0001) ACC_PUBLIC

  org.eclipse.jdt.internal.core.builder.ClasspathMultiDirectory sourceLocation;
    descriptor: Lorg/eclipse/jdt/internal/core/builder/ClasspathMultiDirectory;
    flags: (0x0000) 

  java.lang.String initialTypeName;
    descriptor: Ljava/lang/String;
    flags: (0x0000) 

  boolean updateClassFile;
    descriptor: Z
    flags: (0x0000) 

  public void <init>(org.eclipse.core.resources.IFile, org.eclipse.jdt.internal.core.builder.ClasspathMultiDirectory);
    descriptor: (Lorg/eclipse/core/resources/IFile;Lorg/eclipse/jdt/internal/core/builder/ClasspathMultiDirectory;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
        start local 1 // org.eclipse.core.resources.IFile resource
        start local 2 // org.eclipse.jdt.internal.core.builder.ClasspathMultiDirectory sourceLocation
         0: .line 33
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 34
            aload 0 /* this */
            aload 1 /* resource */
            putfield org.eclipse.jdt.internal.core.builder.SourceFile.resource:Lorg/eclipse/core/resources/IFile;
         2: .line 35
            aload 0 /* this */
            aload 2 /* sourceLocation */
            putfield org.eclipse.jdt.internal.core.builder.SourceFile.sourceLocation:Lorg/eclipse/jdt/internal/core/builder/ClasspathMultiDirectory;
         3: .line 36
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.core.builder.SourceFile.extractTypeName:()Ljava/lang/String;
            putfield org.eclipse.jdt.internal.core.builder.SourceFile.initialTypeName:Ljava/lang/String;
         4: .line 37
            aload 0 /* this */
            iconst_0
            putfield org.eclipse.jdt.internal.core.builder.SourceFile.updateClassFile:Z
         5: .line 38
            return
        end local 2 // org.eclipse.jdt.internal.core.builder.ClasspathMultiDirectory sourceLocation
        end local 1 // org.eclipse.core.resources.IFile resource
        end local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0    6     0            this  Lorg/eclipse/jdt/internal/core/builder/SourceFile;
            0    6     1        resource  Lorg/eclipse/core/resources/IFile;
            0    6     2  sourceLocation  Lorg/eclipse/jdt/internal/core/builder/ClasspathMultiDirectory;
    MethodParameters:
                Name  Flags
      resource        
      sourceLocation  

  public void <init>(org.eclipse.core.resources.IFile, org.eclipse.jdt.internal.core.builder.ClasspathMultiDirectory, boolean);
    descriptor: (Lorg/eclipse/core/resources/IFile;Lorg/eclipse/jdt/internal/core/builder/ClasspathMultiDirectory;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=4
        start local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
        start local 1 // org.eclipse.core.resources.IFile resource
        start local 2 // org.eclipse.jdt.internal.core.builder.ClasspathMultiDirectory sourceLocation
        start local 3 // boolean updateClassFile
         0: .line 41
            aload 0 /* this */
            aload 1 /* resource */
            aload 2 /* sourceLocation */
            invokespecial org.eclipse.jdt.internal.core.builder.SourceFile.<init>:(Lorg/eclipse/core/resources/IFile;Lorg/eclipse/jdt/internal/core/builder/ClasspathMultiDirectory;)V
         1: .line 43
            aload 0 /* this */
            iload 3 /* updateClassFile */
            putfield org.eclipse.jdt.internal.core.builder.SourceFile.updateClassFile:Z
         2: .line 44
            return
        end local 3 // boolean updateClassFile
        end local 2 // org.eclipse.jdt.internal.core.builder.ClasspathMultiDirectory sourceLocation
        end local 1 // org.eclipse.core.resources.IFile resource
        end local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
      LocalVariableTable:
        Start  End  Slot             Name  Signature
            0    3     0             this  Lorg/eclipse/jdt/internal/core/builder/SourceFile;
            0    3     1         resource  Lorg/eclipse/core/resources/IFile;
            0    3     2   sourceLocation  Lorg/eclipse/jdt/internal/core/builder/ClasspathMultiDirectory;
            0    3     3  updateClassFile  Z
    MethodParameters:
                 Name  Flags
      resource         
      sourceLocation   
      updateClassFile  

  public boolean equals(java.lang.Object);
    descriptor: (Ljava/lang/Object;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
        start local 1 // java.lang.Object o
         0: .line 48
            aload 0 /* this */
            aload 1 /* o */
            if_acmpne 1
            iconst_1
            ireturn
         1: .line 49
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            instanceof org.eclipse.jdt.internal.core.builder.SourceFile
            ifne 2
            iconst_0
            ireturn
         2: .line 51
      StackMap locals:
      StackMap stack:
            aload 1 /* o */
            checkcast org.eclipse.jdt.internal.core.builder.SourceFile
            astore 2 /* f */
        start local 2 // org.eclipse.jdt.internal.core.builder.SourceFile f
         3: .line 52
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.builder.SourceFile.sourceLocation:Lorg/eclipse/jdt/internal/core/builder/ClasspathMultiDirectory;
            aload 2 /* f */
            getfield org.eclipse.jdt.internal.core.builder.SourceFile.sourceLocation:Lorg/eclipse/jdt/internal/core/builder/ClasspathMultiDirectory;
            if_acmpne 4
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.builder.SourceFile.resource:Lorg/eclipse/core/resources/IFile;
            invokeinterface org.eclipse.core.resources.IFile.getFullPath:()Lorg/eclipse/core/runtime/IPath;
            aload 2 /* f */
            getfield org.eclipse.jdt.internal.core.builder.SourceFile.resource:Lorg/eclipse/core/resources/IFile;
            invokeinterface org.eclipse.core.resources.IFile.getFullPath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.equals:(Ljava/lang/Object;)Z
            ifeq 4
            iconst_1
            ireturn
      StackMap locals: org.eclipse.jdt.internal.core.builder.SourceFile
      StackMap stack:
         4: iconst_0
            ireturn
        end local 2 // org.eclipse.jdt.internal.core.builder.SourceFile f
        end local 1 // java.lang.Object o
        end local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lorg/eclipse/jdt/internal/core/builder/SourceFile;
            0    5     1     o  Ljava/lang/Object;
            3    5     2     f  Lorg/eclipse/jdt/internal/core/builder/SourceFile;
    MethodParameters:
      Name  Flags
      o     

  java.lang.String extractTypeName();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=5, locals=12, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
         0: .line 57
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.builder.SourceFile.resource:Lorg/eclipse/core/resources/IFile;
            invokeinterface org.eclipse.core.resources.IFile.getFullPath:()Lorg/eclipse/core/runtime/IPath;
            astore 1 /* fullPath */
        start local 1 // org.eclipse.core.runtime.IPath fullPath
         1: .line 58
            aload 1 /* fullPath */
            invokeinterface org.eclipse.core.runtime.IPath.segmentCount:()I
            istore 2 /* resourceSegmentCount */
        start local 2 // int resourceSegmentCount
         2: .line 59
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.builder.SourceFile.sourceLocation:Lorg/eclipse/jdt/internal/core/builder/ClasspathMultiDirectory;
            getfield org.eclipse.jdt.internal.core.builder.ClasspathMultiDirectory.sourceFolder:Lorg/eclipse/core/resources/IContainer;
            invokeinterface org.eclipse.core.resources.IContainer.getFullPath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.segmentCount:()I
            istore 3 /* sourceFolderSegmentCount */
        start local 3 // int sourceFolderSegmentCount
         3: .line 60
            iload 2 /* resourceSegmentCount */
            iload 3 /* sourceFolderSegmentCount */
            isub
            iconst_1
            isub
            istore 4 /* charCount */
        start local 4 // int charCount
         4: .line 61
            iinc 2 /* resourceSegmentCount */ -1
         5: .line 62
            iload 3 /* sourceFolderSegmentCount */
            istore 5 /* i */
        start local 5 // int i
         6: goto 9
         7: .line 63
      StackMap locals: org.eclipse.jdt.internal.core.builder.SourceFile org.eclipse.core.runtime.IPath int int int int
      StackMap stack:
            iload 4 /* charCount */
            aload 1 /* fullPath */
            iload 5 /* i */
            invokeinterface org.eclipse.core.runtime.IPath.segment:(I)Ljava/lang/String;
            invokevirtual java.lang.String.length:()I
            iadd
            istore 4 /* charCount */
         8: .line 62
            iinc 5 /* i */ 1
      StackMap locals:
      StackMap stack:
         9: iload 5 /* i */
            iload 2 /* resourceSegmentCount */
            if_icmplt 7
        end local 5 // int i
        10: .line 64
            aload 1 /* fullPath */
            iload 2 /* resourceSegmentCount */
            invokeinterface org.eclipse.core.runtime.IPath.segment:(I)Ljava/lang/String;
            astore 5 /* lastSegment */
        start local 5 // java.lang.String lastSegment
        11: .line 65
            aload 5 /* lastSegment */
            invokestatic org.eclipse.jdt.internal.core.util.Util.indexOfJavaLikeExtension:(Ljava/lang/String;)I
            istore 6 /* extensionIndex */
        start local 6 // int extensionIndex
        12: .line 66
            iload 4 /* charCount */
            iload 6 /* extensionIndex */
            iadd
            istore 4 /* charCount */
        13: .line 68
            iload 4 /* charCount */
            newarray 5
            astore 7 /* result */
        start local 7 // char[] result
        14: .line 69
            iconst_0
            istore 8 /* offset */
        start local 8 // int offset
        15: .line 70
            iload 3 /* sourceFolderSegmentCount */
            istore 9 /* i */
        start local 9 // int i
        16: goto 23
        17: .line 71
      StackMap locals: org.eclipse.jdt.internal.core.builder.SourceFile org.eclipse.core.runtime.IPath int int int java.lang.String int char[] int int
      StackMap stack:
            aload 1 /* fullPath */
            iload 9 /* i */
            invokeinterface org.eclipse.core.runtime.IPath.segment:(I)Ljava/lang/String;
            astore 10 /* segment */
        start local 10 // java.lang.String segment
        18: .line 72
            aload 10 /* segment */
            invokevirtual java.lang.String.length:()I
            istore 11 /* size */
        start local 11 // int size
        19: .line 73
            aload 10 /* segment */
            iconst_0
            iload 11 /* size */
            aload 7 /* result */
            iload 8 /* offset */
            invokevirtual java.lang.String.getChars:(II[CI)V
        20: .line 74
            iload 8 /* offset */
            iload 11 /* size */
            iadd
            istore 8 /* offset */
        21: .line 75
            aload 7 /* result */
            iload 8 /* offset */
            iinc 8 /* offset */ 1
            bipush 47
            castore
        end local 11 // int size
        end local 10 // java.lang.String segment
        22: .line 70
            iinc 9 /* i */ 1
      StackMap locals:
      StackMap stack:
        23: iload 9 /* i */
            iload 2 /* resourceSegmentCount */
            if_icmplt 17
        end local 9 // int i
        24: .line 77
            aload 5 /* lastSegment */
            iconst_0
            iload 6 /* extensionIndex */
            aload 7 /* result */
            iload 8 /* offset */
            invokevirtual java.lang.String.getChars:(II[CI)V
        25: .line 78
            new java.lang.String
            dup
            aload 7 /* result */
            invokespecial java.lang.String.<init>:([C)V
            areturn
        end local 8 // int offset
        end local 7 // char[] result
        end local 6 // int extensionIndex
        end local 5 // java.lang.String lastSegment
        end local 4 // int charCount
        end local 3 // int sourceFolderSegmentCount
        end local 2 // int resourceSegmentCount
        end local 1 // org.eclipse.core.runtime.IPath fullPath
        end local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
      LocalVariableTable:
        Start  End  Slot                      Name  Signature
            0   26     0                      this  Lorg/eclipse/jdt/internal/core/builder/SourceFile;
            1   26     1                  fullPath  Lorg/eclipse/core/runtime/IPath;
            2   26     2      resourceSegmentCount  I
            3   26     3  sourceFolderSegmentCount  I
            4   26     4                 charCount  I
            6   10     5                         i  I
           11   26     5               lastSegment  Ljava/lang/String;
           12   26     6            extensionIndex  I
           14   26     7                    result  [C
           15   26     8                    offset  I
           16   24     9                         i  I
           18   22    10                   segment  Ljava/lang/String;
           19   22    11                      size  I

  public char[] getContents();
    descriptor: ()[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=6, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
         0: .line 85
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.builder.SourceFile.resource:Lorg/eclipse/core/resources/IFile;
            invokestatic org.eclipse.jdt.internal.core.util.Util.getResourceContentsAsCharArray:(Lorg/eclipse/core/resources/IFile;)[C
         1: areturn
         2: .line 86
      StackMap locals:
      StackMap stack: org.eclipse.core.runtime.CoreException
            pop
         3: .line 87
            new org.eclipse.jdt.internal.compiler.problem.AbortCompilation
            dup
            iconst_1
            new org.eclipse.jdt.internal.core.builder.MissingSourceFileException
            dup
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.builder.SourceFile.resource:Lorg/eclipse/core/resources/IFile;
            invokeinterface org.eclipse.core.resources.IFile.getFullPath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            invokespecial org.eclipse.jdt.internal.core.builder.MissingSourceFileException.<init>:(Ljava/lang/String;)V
            invokespecial org.eclipse.jdt.internal.compiler.problem.AbortCompilation.<init>:(ZLjava/lang/RuntimeException;)V
            athrow
        end local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/eclipse/jdt/internal/core/builder/SourceFile;
      Exception table:
        from    to  target  type
           0     1       2  Class org.eclipse.core.runtime.CoreException

  public char[] getFileName();
    descriptor: ()[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
         0: .line 96
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.builder.SourceFile.resource:Lorg/eclipse/core/resources/IFile;
            invokeinterface org.eclipse.core.resources.IFile.getFullPath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            areturn
        end local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/builder/SourceFile;

  public char[] getMainTypeName();
    descriptor: ()[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
         0: .line 101
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.builder.SourceFile.initialTypeName:Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            astore 1 /* typeName */
        start local 1 // char[] typeName
         1: .line 102
            bipush 47
            aload 1 /* typeName */
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.lastIndexOf:(C[C)I
            istore 2 /* lastIndex */
        start local 2 // int lastIndex
         2: .line 103
            aload 1 /* typeName */
            iload 2 /* lastIndex */
            iconst_1
            iadd
            iconst_m1
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.subarray:([CII)[C
            areturn
        end local 2 // int lastIndex
        end local 1 // char[] typeName
        end local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/eclipse/jdt/internal/core/builder/SourceFile;
            1    3     1   typeName  [C
            2    3     2  lastIndex  I

  public char[][] getPackageName();
    descriptor: ()[[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
         0: .line 108
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.builder.SourceFile.initialTypeName:Ljava/lang/String;
            invokevirtual java.lang.String.toCharArray:()[C
            astore 1 /* typeName */
        start local 1 // char[] typeName
         1: .line 109
            bipush 47
            aload 1 /* typeName */
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.lastIndexOf:(C[C)I
            istore 2 /* lastIndex */
        start local 2 // int lastIndex
         2: .line 110
            bipush 47
            aload 1 /* typeName */
            iconst_0
            iload 2 /* lastIndex */
            invokestatic org.eclipse.jdt.core.compiler.CharOperation.splitOn:(C[CII)[[C
            areturn
        end local 2 // int lastIndex
        end local 1 // char[] typeName
        end local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    3     0       this  Lorg/eclipse/jdt/internal/core/builder/SourceFile;
            1    3     1   typeName  [C
            2    3     2  lastIndex  I

  public int hashCode();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
         0: .line 114
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.builder.SourceFile.initialTypeName:Ljava/lang/String;
            invokevirtual java.lang.String.hashCode:()I
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/builder/SourceFile;

  public boolean ignoreOptionalProblems();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
         0: .line 118
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.builder.SourceFile.sourceLocation:Lorg/eclipse/jdt/internal/core/builder/ClasspathMultiDirectory;
            getfield org.eclipse.jdt.internal.core.builder.ClasspathMultiDirectory.ignoreOptionalProblems:Z
            ireturn
        end local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/builder/SourceFile;

  java.lang.String typeLocator();
    descriptor: ()Ljava/lang/String;
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
         0: .line 121
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.builder.SourceFile.resource:Lorg/eclipse/core/resources/IFile;
            invokeinterface org.eclipse.core.resources.IFile.getProjectRelativePath:()Lorg/eclipse/core/runtime/IPath;
            invokeinterface org.eclipse.core.runtime.IPath.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/core/builder/SourceFile;

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
         0: .line 126
            new java.lang.StringBuilder
            dup
            ldc "SourceFile["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 127
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.builder.SourceFile.resource:Lorg/eclipse/core/resources/IFile;
            invokeinterface org.eclipse.core.resources.IFile.getFullPath:()Lorg/eclipse/core/runtime/IPath;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc "]"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 126
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lorg/eclipse/jdt/internal/core/builder/SourceFile;

  public char[] getModuleName();
    descriptor: ()[C
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=2, args_size=1
        start local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
         0: .line 132
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.core.builder.SourceFile.sourceLocation:Lorg/eclipse/jdt/internal/core/builder/ClasspathMultiDirectory;
            invokevirtual org.eclipse.jdt.internal.core.builder.ClasspathMultiDirectory.module:()Lorg/eclipse/jdt/internal/compiler/env/IModule;
            astore 1 /* mod */
        start local 1 // org.eclipse.jdt.internal.compiler.env.IModule mod
         1: .line 133
            aload 1 /* mod */
            ifnonnull 2
            aconst_null
            goto 3
      StackMap locals: org.eclipse.jdt.internal.compiler.env.IModule
      StackMap stack:
         2: aload 1 /* mod */
            invokeinterface org.eclipse.jdt.internal.compiler.env.IModule.name:()[C
      StackMap locals:
      StackMap stack: char[]
         3: areturn
        end local 1 // org.eclipse.jdt.internal.compiler.env.IModule mod
        end local 0 // org.eclipse.jdt.internal.core.builder.SourceFile this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lorg/eclipse/jdt/internal/core/builder/SourceFile;
            1    4     1   mod  Lorg/eclipse/jdt/internal/compiler/env/IModule;
}
SourceFile: "SourceFile.java"