public class org.graalvm.tools.lsp.test.server.DocumentHighlightTest extends org.graalvm.tools.lsp.test.server.TruffleLSPTest
  minor version: 0
  major version: 59
  flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
  this_class: org.graalvm.tools.lsp.test.server.DocumentHighlightTest
  super_class: org.graalvm.tools.lsp.test.server.TruffleLSPTest
{
  public void <init>();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // org.graalvm.tools.lsp.test.server.DocumentHighlightTest this
         0: .line 41
            aload 0 /* this */
            invokespecial org.graalvm.tools.lsp.test.server.TruffleLSPTest.<init>:()V
            return
        end local 0 // org.graalvm.tools.lsp.test.server.DocumentHighlightTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lorg/graalvm/tools/lsp/test/server/DocumentHighlightTest;

  public void variablesHighlightTest();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=10, locals=4, args_size=1
        start local 0 // org.graalvm.tools.lsp.test.server.DocumentHighlightTest this
         0: .line 45
            aload 0 /* this */
            invokevirtual org.graalvm.tools.lsp.test.server.DocumentHighlightTest.createDummyFileUriForSL:()Ljava/net/URI;
            astore 1 /* uri */
        start local 1 // java.net.URI uri
         1: .line 46
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.test.server.DocumentHighlightTest.truffleAdapter:Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            ldc "function main() {\n    x = abc();\n    return x;\n}\n\nfunction abc() {\n  obj = new();\n  obj.p = 1;\n  return obj;\n}\n\nfunction notCalled() {\n  abc();\n  return abc();\n}\n"
            ldc "sl"
            aload 1 /* uri */
            invokevirtual org.graalvm.tools.lsp.server.TruffleAdapter.parse:(Ljava/lang/String;Ljava/lang/String;Ljava/net/URI;)Ljava/util/concurrent/Future;
            astore 2 /* futureOpen */
        start local 2 // java.util.concurrent.Future futureOpen
         2: .line 47
            aload 2 /* futureOpen */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            pop
         3: .line 49
            aload 0 /* this */
            aload 1 /* uri */
            iconst_1
            iconst_4
            iconst_2
            anewarray org.graalvm.tools.lsp.server.types.DocumentHighlight
            dup
            iconst_0
            iconst_1
            iconst_4
            invokestatic org.graalvm.tools.lsp.server.types.Position.create:(II)Lorg/graalvm/tools/lsp/server/types/Position;
            iconst_1
            iconst_5
            invokestatic org.graalvm.tools.lsp.server.types.Position.create:(II)Lorg/graalvm/tools/lsp/server/types/Position;
            invokestatic org.graalvm.tools.lsp.server.types.Range.create:(Lorg/graalvm/tools/lsp/server/types/Position;Lorg/graalvm/tools/lsp/server/types/Position;)Lorg/graalvm/tools/lsp/server/types/Range;
            getstatic org.graalvm.tools.lsp.server.types.DocumentHighlightKind.Write:Lorg/graalvm/tools/lsp/server/types/DocumentHighlightKind;
            invokestatic org.graalvm.tools.lsp.server.types.DocumentHighlight.create:(Lorg/graalvm/tools/lsp/server/types/Range;Lorg/graalvm/tools/lsp/server/types/DocumentHighlightKind;)Lorg/graalvm/tools/lsp/server/types/DocumentHighlight;
            aastore
            dup
            iconst_1
         4: .line 50
            iconst_2
            bipush 11
            invokestatic org.graalvm.tools.lsp.server.types.Position.create:(II)Lorg/graalvm/tools/lsp/server/types/Position;
            iconst_2
            bipush 12
            invokestatic org.graalvm.tools.lsp.server.types.Position.create:(II)Lorg/graalvm/tools/lsp/server/types/Position;
            invokestatic org.graalvm.tools.lsp.server.types.Range.create:(Lorg/graalvm/tools/lsp/server/types/Position;Lorg/graalvm/tools/lsp/server/types/Position;)Lorg/graalvm/tools/lsp/server/types/Range;
            getstatic org.graalvm.tools.lsp.server.types.DocumentHighlightKind.Read:Lorg/graalvm/tools/lsp/server/types/DocumentHighlightKind;
            invokestatic org.graalvm.tools.lsp.server.types.DocumentHighlight.create:(Lorg/graalvm/tools/lsp/server/types/Range;Lorg/graalvm/tools/lsp/server/types/DocumentHighlightKind;)Lorg/graalvm/tools/lsp/server/types/DocumentHighlight;
            aastore
         5: .line 49
            invokevirtual org.graalvm.tools.lsp.test.server.DocumentHighlightTest.checkHighlight:(Ljava/net/URI;II[Lorg/graalvm/tools/lsp/server/types/DocumentHighlight;)V
         6: .line 51
            iconst_2
            istore 3 /* column */
        start local 3 // int column
         7: goto 13
         8: .line 52
      StackMap locals: java.net.URI java.util.concurrent.Future int
      StackMap stack:
            aload 0 /* this */
            aload 1 /* uri */
            bipush 6
            iload 3 /* column */
            iconst_3
            anewarray org.graalvm.tools.lsp.server.types.DocumentHighlight
            dup
            iconst_0
            bipush 6
            iconst_2
            invokestatic org.graalvm.tools.lsp.server.types.Position.create:(II)Lorg/graalvm/tools/lsp/server/types/Position;
            bipush 6
            iconst_5
            invokestatic org.graalvm.tools.lsp.server.types.Position.create:(II)Lorg/graalvm/tools/lsp/server/types/Position;
            invokestatic org.graalvm.tools.lsp.server.types.Range.create:(Lorg/graalvm/tools/lsp/server/types/Position;Lorg/graalvm/tools/lsp/server/types/Position;)Lorg/graalvm/tools/lsp/server/types/Range;
            getstatic org.graalvm.tools.lsp.server.types.DocumentHighlightKind.Write:Lorg/graalvm/tools/lsp/server/types/DocumentHighlightKind;
            invokestatic org.graalvm.tools.lsp.server.types.DocumentHighlight.create:(Lorg/graalvm/tools/lsp/server/types/Range;Lorg/graalvm/tools/lsp/server/types/DocumentHighlightKind;)Lorg/graalvm/tools/lsp/server/types/DocumentHighlight;
            aastore
            dup
            iconst_1
         9: .line 53
            bipush 7
            iconst_2
            invokestatic org.graalvm.tools.lsp.server.types.Position.create:(II)Lorg/graalvm/tools/lsp/server/types/Position;
            bipush 7
            iconst_5
            invokestatic org.graalvm.tools.lsp.server.types.Position.create:(II)Lorg/graalvm/tools/lsp/server/types/Position;
            invokestatic org.graalvm.tools.lsp.server.types.Range.create:(Lorg/graalvm/tools/lsp/server/types/Position;Lorg/graalvm/tools/lsp/server/types/Position;)Lorg/graalvm/tools/lsp/server/types/Range;
            getstatic org.graalvm.tools.lsp.server.types.DocumentHighlightKind.Read:Lorg/graalvm/tools/lsp/server/types/DocumentHighlightKind;
            invokestatic org.graalvm.tools.lsp.server.types.DocumentHighlight.create:(Lorg/graalvm/tools/lsp/server/types/Range;Lorg/graalvm/tools/lsp/server/types/DocumentHighlightKind;)Lorg/graalvm/tools/lsp/server/types/DocumentHighlight;
            aastore
            dup
            iconst_2
        10: .line 54
            bipush 8
            bipush 9
            invokestatic org.graalvm.tools.lsp.server.types.Position.create:(II)Lorg/graalvm/tools/lsp/server/types/Position;
            bipush 8
            bipush 12
            invokestatic org.graalvm.tools.lsp.server.types.Position.create:(II)Lorg/graalvm/tools/lsp/server/types/Position;
            invokestatic org.graalvm.tools.lsp.server.types.Range.create:(Lorg/graalvm/tools/lsp/server/types/Position;Lorg/graalvm/tools/lsp/server/types/Position;)Lorg/graalvm/tools/lsp/server/types/Range;
            getstatic org.graalvm.tools.lsp.server.types.DocumentHighlightKind.Read:Lorg/graalvm/tools/lsp/server/types/DocumentHighlightKind;
            invokestatic org.graalvm.tools.lsp.server.types.DocumentHighlight.create:(Lorg/graalvm/tools/lsp/server/types/Range;Lorg/graalvm/tools/lsp/server/types/DocumentHighlightKind;)Lorg/graalvm/tools/lsp/server/types/DocumentHighlight;
            aastore
        11: .line 52
            invokevirtual org.graalvm.tools.lsp.test.server.DocumentHighlightTest.checkHighlight:(Ljava/net/URI;II[Lorg/graalvm/tools/lsp/server/types/DocumentHighlight;)V
        12: .line 51
            iinc 3 /* column */ 1
      StackMap locals:
      StackMap stack:
        13: iload 3 /* column */
            iconst_4
            if_icmple 8
        end local 3 // int column
        14: .line 56
            return
        end local 2 // java.util.concurrent.Future futureOpen
        end local 1 // java.net.URI uri
        end local 0 // org.graalvm.tools.lsp.test.server.DocumentHighlightTest this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   15     0        this  Lorg/graalvm/tools/lsp/test/server/DocumentHighlightTest;
            1   15     1         uri  Ljava/net/URI;
            2   15     2  futureOpen  Ljava/util/concurrent/Future<*>;
            7   14     3      column  I
    Exceptions:
      throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private void checkHighlight(java.net.URI, int, int, org.graalvm.tools.lsp.server.types.DocumentHighlight[]);
    descriptor: (Ljava/net/URI;II[Lorg/graalvm/tools/lsp/server/types/DocumentHighlight;)V
    flags: (0x0082) ACC_PRIVATE, ACC_VARARGS
    Code:
      stack=4, locals=10, args_size=5
        start local 0 // org.graalvm.tools.lsp.test.server.DocumentHighlightTest this
        start local 1 // java.net.URI uri
        start local 2 // int line
        start local 3 // int column
        start local 4 // org.graalvm.tools.lsp.server.types.DocumentHighlight[] verifiedHighlights
         0: .line 59
            aload 0 /* this */
            getfield org.graalvm.tools.lsp.test.server.DocumentHighlightTest.truffleAdapter:Lorg/graalvm/tools/lsp/server/TruffleAdapter;
            aload 1 /* uri */
            iload 2 /* line */
            iload 3 /* column */
            invokevirtual org.graalvm.tools.lsp.server.TruffleAdapter.documentHighlight:(Ljava/net/URI;II)Ljava/util/concurrent/Future;
            astore 5 /* future */
        start local 5 // java.util.concurrent.Future future
         1: .line 60
            aload 5 /* future */
            invokeinterface java.util.concurrent.Future.get:()Ljava/lang/Object;
            checkcast java.util.List
            astore 6 /* highlights */
        start local 6 // java.util.List highlights
         2: .line 61
            aload 4 /* verifiedHighlights */
            arraylength
            i2l
            aload 6 /* highlights */
            invokeinterface java.util.List.size:()I
            i2l
            invokestatic org.junit.Assert.assertEquals:(JJ)V
         3: .line 62
            iconst_0
            istore 7 /* i */
        start local 7 // int i
         4: goto 10
         5: .line 63
      StackMap locals: java.util.concurrent.Future java.util.List int
      StackMap stack:
            aload 4 /* verifiedHighlights */
            iload 7 /* i */
            aaload
            astore 8 /* vh */
        start local 8 // org.graalvm.tools.lsp.server.types.DocumentHighlight vh
         6: .line 64
            aload 6 /* highlights */
            iload 7 /* i */
            invokeinterface java.util.List.get:(I)Ljava/lang/Object;
            checkcast org.graalvm.tools.lsp.server.types.DocumentHighlight
            astore 9 /* h */
        start local 9 // org.graalvm.tools.lsp.server.types.DocumentHighlight h
         7: .line 65
            iload 7 /* i */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            aload 8 /* vh */
            invokevirtual org.graalvm.tools.lsp.server.types.DocumentHighlight.getKind:()Lorg/graalvm/tools/lsp/server/types/DocumentHighlightKind;
            aload 9 /* h */
            invokevirtual org.graalvm.tools.lsp.server.types.DocumentHighlight.getKind:()Lorg/graalvm/tools/lsp/server/types/DocumentHighlightKind;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
         8: .line 66
            iload 7 /* i */
            invokestatic java.lang.Integer.toString:(I)Ljava/lang/String;
            aload 0 /* this */
            aload 8 /* vh */
            invokevirtual org.graalvm.tools.lsp.server.types.DocumentHighlight.getRange:()Lorg/graalvm/tools/lsp/server/types/Range;
            aload 9 /* h */
            invokevirtual org.graalvm.tools.lsp.server.types.DocumentHighlight.getRange:()Lorg/graalvm/tools/lsp/server/types/Range;
            invokevirtual org.graalvm.tools.lsp.test.server.DocumentHighlightTest.rangeCheck:(Lorg/graalvm/tools/lsp/server/types/Range;Lorg/graalvm/tools/lsp/server/types/Range;)Z
            invokestatic org.junit.Assert.assertTrue:(Ljava/lang/String;Z)V
        end local 9 // org.graalvm.tools.lsp.server.types.DocumentHighlight h
        end local 8 // org.graalvm.tools.lsp.server.types.DocumentHighlight vh
         9: .line 62
            iinc 7 /* i */ 1
      StackMap locals:
      StackMap stack:
        10: iload 7 /* i */
            aload 4 /* verifiedHighlights */
            arraylength
            if_icmplt 5
        end local 7 // int i
        11: .line 68
            return
        end local 6 // java.util.List highlights
        end local 5 // java.util.concurrent.Future future
        end local 4 // org.graalvm.tools.lsp.server.types.DocumentHighlight[] verifiedHighlights
        end local 3 // int column
        end local 2 // int line
        end local 1 // java.net.URI uri
        end local 0 // org.graalvm.tools.lsp.test.server.DocumentHighlightTest this
      LocalVariableTable:
        Start  End  Slot                Name  Signature
            0   12     0                this  Lorg/graalvm/tools/lsp/test/server/DocumentHighlightTest;
            0   12     1                 uri  Ljava/net/URI;
            0   12     2                line  I
            0   12     3              column  I
            0   12     4  verifiedHighlights  [Lorg/graalvm/tools/lsp/server/types/DocumentHighlight;
            1   12     5              future  Ljava/util/concurrent/Future<Ljava/util/List<+Lorg/graalvm/tools/lsp/server/types/DocumentHighlight;>;>;
            2   12     6          highlights  Ljava/util/List<+Lorg/graalvm/tools/lsp/server/types/DocumentHighlight;>;
            4   11     7                   i  I
            6    9     8                  vh  Lorg/graalvm/tools/lsp/server/types/DocumentHighlight;
            7    9     9                   h  Lorg/graalvm/tools/lsp/server/types/DocumentHighlight;
    Exceptions:
      throws java.lang.InterruptedException, java.util.concurrent.ExecutionException
    MethodParameters:
                    Name  Flags
      uri                 
      line                
      column              
      verifiedHighlights  
}
SourceFile: "DocumentHighlightTest.java"