public class org.eclipse.jdt.internal.compiler.ast.ThisReference extends org.eclipse.jdt.internal.compiler.ast.Reference
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.eclipse.jdt.internal.compiler.ast.ThisReference
  super_class: org.eclipse.jdt.internal.compiler.ast.Reference
{
  public static org.eclipse.jdt.internal.compiler.ast.ThisReference implicitThis();
    descriptor: ()Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=1, args_size=0
         0: .line 32
            new org.eclipse.jdt.internal.compiler.ast.ThisReference
            dup
            iconst_0
            iconst_0
            invokespecial org.eclipse.jdt.internal.compiler.ast.ThisReference.<init>:(II)V
            astore 0 /* implicitThis */
        start local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference implicitThis
         1: .line 33
            aload 0 /* implicitThis */
            dup
            getfield org.eclipse.jdt.internal.compiler.ast.ThisReference.bits:I
            iconst_4
            ior
            putfield org.eclipse.jdt.internal.compiler.ast.ThisReference.bits:I
         2: .line 34
            aload 0 /* implicitThis */
            areturn
        end local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference implicitThis
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            1    3     0  implicitThis  Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;

  public void <init>(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
        start local 1 // int sourceStart
        start local 2 // int sourceEnd
         0: .line 37
            aload 0 /* this */
            invokespecial org.eclipse.jdt.internal.compiler.ast.Reference.<init>:()V
         1: .line 39
            aload 0 /* this */
            iload 1 /* sourceStart */
            putfield org.eclipse.jdt.internal.compiler.ast.ThisReference.sourceStart:I
         2: .line 40
            aload 0 /* this */
            iload 2 /* sourceEnd */
            putfield org.eclipse.jdt.internal.compiler.ast.ThisReference.sourceEnd:I
         3: .line 41
            return
        end local 2 // int sourceEnd
        end local 1 // int sourceStart
        end local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    4     0         this  Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;
            0    4     1  sourceStart  I
            0    4     2    sourceEnd  I
    MethodParameters:
             Name  Flags
      sourceStart  
      sourceEnd    

  public org.eclipse.jdt.internal.compiler.flow.FlowInfo analyseAssignment(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.flow.FlowContext, org.eclipse.jdt.internal.compiler.flow.FlowInfo, org.eclipse.jdt.internal.compiler.ast.Assignment, boolean);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;Lorg/eclipse/jdt/internal/compiler/ast/Assignment;Z)Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=6, args_size=6
        start local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope currentScope
        start local 2 // org.eclipse.jdt.internal.compiler.flow.FlowContext flowContext
        start local 3 // org.eclipse.jdt.internal.compiler.flow.FlowInfo flowInfo
        start local 4 // org.eclipse.jdt.internal.compiler.ast.Assignment assignment
        start local 5 // boolean isCompound
         0: .line 46
            aload 3 /* flowInfo */
            areturn
        end local 5 // boolean isCompound
        end local 4 // org.eclipse.jdt.internal.compiler.ast.Assignment assignment
        end local 3 // org.eclipse.jdt.internal.compiler.flow.FlowInfo flowInfo
        end local 2 // org.eclipse.jdt.internal.compiler.flow.FlowContext flowContext
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope currentScope
        end local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    1     0          this  Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;
            0    1     1  currentScope  Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
            0    1     2   flowContext  Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;
            0    1     3      flowInfo  Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            0    1     4    assignment  Lorg/eclipse/jdt/internal/compiler/ast/Assignment;
            0    1     5    isCompound  Z
    MethodParameters:
              Name  Flags
      currentScope  
      flowContext   
      flowInfo      
      assignment    
      isCompound    

  public boolean checkAccess(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope scope
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding receiverType
         0: .line 51
            aload 1 /* scope */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.methodScope:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
            astore 3 /* methodScope */
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.MethodScope methodScope
         1: .line 53
            aload 3 /* methodScope */
            getfield org.eclipse.jdt.internal.compiler.lookup.MethodScope.isConstructorCall:Z
            ifeq 4
         2: .line 54
            aload 3 /* methodScope */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.problemReporter:()Lorg/eclipse/jdt/internal/compiler/problem/ProblemReporter;
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.fieldsOrThisBeforeConstructorInvocation:(Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;)V
         3: .line 55
            iconst_0
            ireturn
         4: .line 59
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.MethodScope
      StackMap stack:
            aload 3 /* methodScope */
            getfield org.eclipse.jdt.internal.compiler.lookup.MethodScope.isStatic:Z
            ifeq 7
         5: .line 60
            aload 3 /* methodScope */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.problemReporter:()Lorg/eclipse/jdt/internal/compiler/problem/ProblemReporter;
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.errorThisSuperInStatic:(Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;)V
         6: .line 61
            iconst_0
            ireturn
         7: .line 62
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.ThisReference.isUnqualifiedSuper:()Z
            ifeq 12
         8: .line 63
            aload 3 /* methodScope */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.referenceType:()Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
            astore 4 /* type */
        start local 4 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration type
         9: .line 64
            aload 4 /* type */
            ifnull 12
            aload 4 /* type */
            getfield org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.modifiers:I
            invokestatic org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.kind:(I)I
            iconst_2
            if_icmpne 12
        10: .line 65
            aload 3 /* methodScope */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.problemReporter:()Lorg/eclipse/jdt/internal/compiler/problem/ProblemReporter;
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.compiler.problem.ProblemReporter.errorNoSuperInInterface:(Lorg/eclipse/jdt/internal/compiler/ast/ASTNode;)V
        11: .line 66
            iconst_0
            ireturn
        end local 4 // org.eclipse.jdt.internal.compiler.ast.TypeDeclaration type
        12: .line 69
      StackMap locals:
      StackMap stack:
            aload 2 /* receiverType */
            ifnull 14
        13: .line 70
            aload 1 /* scope */
            aload 2 /* receiverType */
            iconst_0
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.tagAsAccessingEnclosingInstanceStateOf:(Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;Z)V
        14: .line 71
      StackMap locals:
      StackMap stack:
            iconst_1
            ireturn
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.MethodScope methodScope
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding receiverType
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope scope
        end local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   15     0          this  Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;
            0   15     1         scope  Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
            0   15     2  receiverType  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            1   15     3   methodScope  Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
            9   12     4          type  Lorg/eclipse/jdt/internal/compiler/ast/TypeDeclaration;
    MethodParameters:
              Name  Flags
      scope         
      receiverType  

  public boolean checkNPE(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.flow.FlowContext, org.eclipse.jdt.internal.compiler.flow.FlowInfo, int);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;I)Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=5, args_size=5
        start local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope scope
        start local 2 // org.eclipse.jdt.internal.compiler.flow.FlowContext flowContext
        start local 3 // org.eclipse.jdt.internal.compiler.flow.FlowInfo flowInfo
        start local 4 // int ttlForFieldCheck
         0: .line 76
            iconst_1
            ireturn
        end local 4 // int ttlForFieldCheck
        end local 3 // org.eclipse.jdt.internal.compiler.flow.FlowInfo flowInfo
        end local 2 // org.eclipse.jdt.internal.compiler.flow.FlowContext flowContext
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope scope
        end local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
      LocalVariableTable:
        Start  End  Slot              Name  Signature
            0    1     0              this  Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;
            0    1     1             scope  Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
            0    1     2       flowContext  Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;
            0    1     3          flowInfo  Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            0    1     4  ttlForFieldCheck  I
    MethodParameters:
                  Name  Flags
      scope             
      flowContext       
      flowInfo          
      ttlForFieldCheck  

  public void generateAssignment(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.codegen.CodeStream, org.eclipse.jdt.internal.compiler.ast.Assignment, boolean);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Lorg/eclipse/jdt/internal/compiler/ast/Assignment;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=5, args_size=5
        start local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope currentScope
        start local 2 // org.eclipse.jdt.internal.compiler.codegen.CodeStream codeStream
        start local 3 // org.eclipse.jdt.internal.compiler.ast.Assignment assignment
        start local 4 // boolean valueRequired
         0: .line 83
            return
        end local 4 // boolean valueRequired
        end local 3 // org.eclipse.jdt.internal.compiler.ast.Assignment assignment
        end local 2 // org.eclipse.jdt.internal.compiler.codegen.CodeStream codeStream
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope currentScope
        end local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;
            0    1     1   currentScope  Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
            0    1     2     codeStream  Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;
            0    1     3     assignment  Lorg/eclipse/jdt/internal/compiler/ast/Assignment;
            0    1     4  valueRequired  Z
    MethodParameters:
               Name  Flags
      currentScope   
      codeStream     
      assignment     
      valueRequired  

  public void generateCode(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.codegen.CodeStream, boolean);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=4
        start local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope currentScope
        start local 2 // org.eclipse.jdt.internal.compiler.codegen.CodeStream codeStream
        start local 3 // boolean valueRequired
         0: .line 88
            aload 2 /* codeStream */
            getfield org.eclipse.jdt.internal.compiler.codegen.CodeStream.position:I
            istore 4 /* pc */
        start local 4 // int pc
         1: .line 89
            iload 3 /* valueRequired */
            ifeq 3
         2: .line 90
            aload 2 /* codeStream */
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.aload_0:()V
         3: .line 91
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.ThisReference.bits:I
            iconst_4
            iand
            ifne 4
            aload 2 /* codeStream */
            iload 4 /* pc */
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.ThisReference.sourceStart:I
            invokevirtual org.eclipse.jdt.internal.compiler.codegen.CodeStream.recordPositionsFrom:(II)V
         4: .line 92
      StackMap locals:
      StackMap stack:
            return
        end local 4 // int pc
        end local 3 // boolean valueRequired
        end local 2 // org.eclipse.jdt.internal.compiler.codegen.CodeStream codeStream
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope currentScope
        end local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;
            0    5     1   currentScope  Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
            0    5     2     codeStream  Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;
            0    5     3  valueRequired  Z
            1    5     4             pc  I
    MethodParameters:
               Name  Flags
      currentScope   
      codeStream     
      valueRequired  

  public void generateCompoundAssignment(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.codegen.CodeStream, org.eclipse.jdt.internal.compiler.ast.Expression, int, int, boolean);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Lorg/eclipse/jdt/internal/compiler/ast/Expression;IIZ)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=7, args_size=7
        start local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope currentScope
        start local 2 // org.eclipse.jdt.internal.compiler.codegen.CodeStream codeStream
        start local 3 // org.eclipse.jdt.internal.compiler.ast.Expression expression
        start local 4 // int operator
        start local 5 // int assignmentImplicitConversion
        start local 6 // boolean valueRequired
         0: .line 98
            return
        end local 6 // boolean valueRequired
        end local 5 // int assignmentImplicitConversion
        end local 4 // int operator
        end local 3 // org.eclipse.jdt.internal.compiler.ast.Expression expression
        end local 2 // org.eclipse.jdt.internal.compiler.codegen.CodeStream codeStream
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope currentScope
        end local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
      LocalVariableTable:
        Start  End  Slot                          Name  Signature
            0    1     0                          this  Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;
            0    1     1                  currentScope  Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
            0    1     2                    codeStream  Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;
            0    1     3                    expression  Lorg/eclipse/jdt/internal/compiler/ast/Expression;
            0    1     4                      operator  I
            0    1     5  assignmentImplicitConversion  I
            0    1     6                 valueRequired  Z
    MethodParameters:
                              Name  Flags
      currentScope                  
      codeStream                    
      expression                    
      operator                      
      assignmentImplicitConversion  
      valueRequired                 

  public void generatePostIncrement(org.eclipse.jdt.internal.compiler.lookup.BlockScope, org.eclipse.jdt.internal.compiler.codegen.CodeStream, org.eclipse.jdt.internal.compiler.ast.CompoundAssignment, boolean);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;Lorg/eclipse/jdt/internal/compiler/ast/CompoundAssignment;Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=0, locals=5, args_size=5
        start local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope currentScope
        start local 2 // org.eclipse.jdt.internal.compiler.codegen.CodeStream codeStream
        start local 3 // org.eclipse.jdt.internal.compiler.ast.CompoundAssignment postIncrement
        start local 4 // boolean valueRequired
         0: .line 104
            return
        end local 4 // boolean valueRequired
        end local 3 // org.eclipse.jdt.internal.compiler.ast.CompoundAssignment postIncrement
        end local 2 // org.eclipse.jdt.internal.compiler.codegen.CodeStream codeStream
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope currentScope
        end local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    1     0           this  Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;
            0    1     1   currentScope  Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
            0    1     2     codeStream  Lorg/eclipse/jdt/internal/compiler/codegen/CodeStream;
            0    1     3  postIncrement  Lorg/eclipse/jdt/internal/compiler/ast/CompoundAssignment;
            0    1     4  valueRequired  Z
    MethodParameters:
               Name  Flags
      currentScope   
      codeStream     
      postIncrement  
      valueRequired  

  public boolean isImplicitThis();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
         0: .line 109
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.ThisReference.bits:I
            iconst_4
            iand
            ifeq 1
            iconst_1
            ireturn
      StackMap locals:
      StackMap stack:
         1: iconst_0
            ireturn
        end local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;

  public boolean isThis();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
         0: .line 115
            iconst_1
            ireturn
        end local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;

  public int nullStatus(org.eclipse.jdt.internal.compiler.flow.FlowInfo, org.eclipse.jdt.internal.compiler.flow.FlowContext);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
        start local 1 // org.eclipse.jdt.internal.compiler.flow.FlowInfo flowInfo
        start local 2 // org.eclipse.jdt.internal.compiler.flow.FlowContext flowContext
         0: .line 120
            iconst_4
            ireturn
        end local 2 // org.eclipse.jdt.internal.compiler.flow.FlowContext flowContext
        end local 1 // org.eclipse.jdt.internal.compiler.flow.FlowInfo flowInfo
        end local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    1     0         this  Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;
            0    1     1     flowInfo  Lorg/eclipse/jdt/internal/compiler/flow/FlowInfo;
            0    1     2  flowContext  Lorg/eclipse/jdt/internal/compiler/flow/FlowContext;
    MethodParameters:
             Name  Flags
      flowInfo     
      flowContext  

  public java.lang.StringBuffer printExpression(int, java.lang.StringBuffer);
    descriptor: (ILjava/lang/StringBuffer;)Ljava/lang/StringBuffer;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
        start local 1 // int indent
        start local 2 // java.lang.StringBuffer output
         0: .line 126
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.ThisReference.isImplicitThis:()Z
            ifeq 1
            aload 2 /* output */
            areturn
         1: .line 127
      StackMap locals:
      StackMap stack:
            aload 2 /* output */
            ldc "this"
            invokevirtual java.lang.StringBuffer.append:(Ljava/lang/String;)Ljava/lang/StringBuffer;
            areturn
        end local 2 // java.lang.StringBuffer output
        end local 1 // int indent
        end local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    2     0    this  Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;
            0    2     1  indent  I
            0    2     2  output  Ljava/lang/StringBuffer;
    MethodParameters:
        Name  Flags
      indent  
      output  

  public org.eclipse.jdt.internal.compiler.lookup.TypeBinding resolveType(org.eclipse.jdt.internal.compiler.lookup.BlockScope);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
        start local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope scope
         0: .line 133
            aload 0 /* this */
            getstatic org.eclipse.jdt.internal.compiler.impl.Constant.NotAConstant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
            putfield org.eclipse.jdt.internal.compiler.ast.ThisReference.constant:Lorg/eclipse/jdt/internal/compiler/impl/Constant;
         1: .line 135
            aload 1 /* scope */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.enclosingReceiverType:()Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            astore 2 /* enclosingReceiverType */
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding enclosingReceiverType
         2: .line 136
            aload 0 /* this */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.ThisReference.isImplicitThis:()Z
            ifne 4
            aload 0 /* this */
            aload 1 /* scope */
            aload 2 /* enclosingReceiverType */
            invokevirtual org.eclipse.jdt.internal.compiler.ast.ThisReference.checkAccess:(Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;)Z
            ifne 4
         3: .line 137
            aconst_null
            areturn
         4: .line 139
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding
      StackMap stack:
            aload 0 /* this */
            aload 2 /* enclosingReceiverType */
            putfield org.eclipse.jdt.internal.compiler.ast.ThisReference.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
         5: .line 140
            aload 1 /* scope */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.BlockScope.namedMethodScope:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
            astore 3 /* methodScope */
        start local 3 // org.eclipse.jdt.internal.compiler.lookup.MethodScope methodScope
         6: .line 141
            aload 3 /* methodScope */
            ifnull 10
         7: .line 142
            aload 3 /* methodScope */
            invokevirtual org.eclipse.jdt.internal.compiler.lookup.MethodScope.referenceMethodBinding:()Lorg/eclipse/jdt/internal/compiler/lookup/MethodBinding;
            astore 4 /* method */
        start local 4 // org.eclipse.jdt.internal.compiler.lookup.MethodBinding method
         8: .line 143
            aload 4 /* method */
            ifnull 10
            aload 4 /* method */
            getfield org.eclipse.jdt.internal.compiler.lookup.MethodBinding.receiver:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            ifnull 10
            aload 4 /* method */
            getfield org.eclipse.jdt.internal.compiler.lookup.MethodBinding.receiver:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.ThisReference.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            invokestatic org.eclipse.jdt.internal.compiler.lookup.TypeBinding.equalsEquals:(Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;)Z
            ifeq 10
         9: .line 144
            aload 0 /* this */
            aload 4 /* method */
            getfield org.eclipse.jdt.internal.compiler.lookup.MethodBinding.receiver:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            putfield org.eclipse.jdt.internal.compiler.ast.ThisReference.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
        end local 4 // org.eclipse.jdt.internal.compiler.lookup.MethodBinding method
        10: .line 146
      StackMap locals: org.eclipse.jdt.internal.compiler.lookup.MethodScope
      StackMap stack:
            aload 0 /* this */
            getfield org.eclipse.jdt.internal.compiler.ast.ThisReference.resolvedType:Lorg/eclipse/jdt/internal/compiler/lookup/TypeBinding;
            areturn
        end local 3 // org.eclipse.jdt.internal.compiler.lookup.MethodScope methodScope
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.ReferenceBinding enclosingReceiverType
        end local 1 // org.eclipse.jdt.internal.compiler.lookup.BlockScope scope
        end local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
      LocalVariableTable:
        Start  End  Slot                   Name  Signature
            0   11     0                   this  Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;
            0   11     1                  scope  Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
            2   11     2  enclosingReceiverType  Lorg/eclipse/jdt/internal/compiler/lookup/ReferenceBinding;
            6   11     3            methodScope  Lorg/eclipse/jdt/internal/compiler/lookup/MethodScope;
            8   10     4                 method  Lorg/eclipse/jdt/internal/compiler/lookup/MethodBinding;
    MethodParameters:
       Name  Flags
      scope  

  public void traverse(org.eclipse.jdt.internal.compiler.ASTVisitor, org.eclipse.jdt.internal.compiler.lookup.BlockScope);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
        start local 1 // org.eclipse.jdt.internal.compiler.ASTVisitor visitor
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.BlockScope blockScope
         0: .line 152
            aload 1 /* visitor */
            aload 0 /* this */
            aload 2 /* blockScope */
            invokevirtual org.eclipse.jdt.internal.compiler.ASTVisitor.visit:(Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)Z
            pop
         1: .line 153
            aload 1 /* visitor */
            aload 0 /* this */
            aload 2 /* blockScope */
            invokevirtual org.eclipse.jdt.internal.compiler.ASTVisitor.endVisit:(Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;)V
         2: .line 154
            return
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.BlockScope blockScope
        end local 1 // org.eclipse.jdt.internal.compiler.ASTVisitor visitor
        end local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;
            0    3     1     visitor  Lorg/eclipse/jdt/internal/compiler/ASTVisitor;
            0    3     2  blockScope  Lorg/eclipse/jdt/internal/compiler/lookup/BlockScope;
    MethodParameters:
            Name  Flags
      visitor     
      blockScope  

  public void traverse(org.eclipse.jdt.internal.compiler.ASTVisitor, org.eclipse.jdt.internal.compiler.lookup.ClassScope);
    descriptor: (Lorg/eclipse/jdt/internal/compiler/ASTVisitor;Lorg/eclipse/jdt/internal/compiler/lookup/ClassScope;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
        start local 1 // org.eclipse.jdt.internal.compiler.ASTVisitor visitor
        start local 2 // org.eclipse.jdt.internal.compiler.lookup.ClassScope blockScope
         0: .line 158
            aload 1 /* visitor */
            aload 0 /* this */
            aload 2 /* blockScope */
            invokevirtual org.eclipse.jdt.internal.compiler.ASTVisitor.visit:(Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;Lorg/eclipse/jdt/internal/compiler/lookup/ClassScope;)Z
            pop
         1: .line 159
            aload 1 /* visitor */
            aload 0 /* this */
            aload 2 /* blockScope */
            invokevirtual org.eclipse.jdt.internal.compiler.ASTVisitor.endVisit:(Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;Lorg/eclipse/jdt/internal/compiler/lookup/ClassScope;)V
         2: .line 160
            return
        end local 2 // org.eclipse.jdt.internal.compiler.lookup.ClassScope blockScope
        end local 1 // org.eclipse.jdt.internal.compiler.ASTVisitor visitor
        end local 0 // org.eclipse.jdt.internal.compiler.ast.ThisReference this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    3     0        this  Lorg/eclipse/jdt/internal/compiler/ast/ThisReference;
            0    3     1     visitor  Lorg/eclipse/jdt/internal/compiler/ASTVisitor;
            0    3     2  blockScope  Lorg/eclipse/jdt/internal/compiler/lookup/ClassScope;
    MethodParameters:
            Name  Flags
      visitor     
      blockScope  
}
SourceFile: "ThisReference.java"