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

  public void testMeet0();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 40
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$B;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.check:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 41
            return
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMeet1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 45
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* a */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp a
         1: .line 46
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* aNonNull */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp aNonNull
         2: .line 47
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$B;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 3 /* b */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp b
         3: .line 48
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$B;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 4 /* bNonNull */
        start local 4 // org.graalvm.compiler.core.common.type.Stamp bNonNull
         4: .line 49
            aload 1 /* a */
            aload 2 /* aNonNull */
            aload 3 /* b */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampMeetTest.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         5: .line 50
            aload 2 /* aNonNull */
            aload 2 /* aNonNull */
            aload 4 /* bNonNull */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampMeetTest.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         6: .line 51
            return
        end local 4 // org.graalvm.compiler.core.common.type.Stamp bNonNull
        end local 3 // org.graalvm.compiler.core.common.type.Stamp b
        end local 2 // org.graalvm.compiler.core.common.type.Stamp aNonNull
        end local 1 // org.graalvm.compiler.core.common.type.Stamp a
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
            1    7     1         a  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    7     2  aNonNull  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    7     3         b  Lorg/graalvm/compiler/core/common/type/Stamp;
            4    7     4  bNonNull  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMeet2();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 55
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* a */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp a
         1: .line 56
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* aExact */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp aExact
         2: .line 57
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$B;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 3 /* b */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp b
         3: .line 58
            aload 1 /* a */
            aload 2 /* aExact */
            aload 3 /* b */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampMeetTest.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 59
            return
        end local 3 // org.graalvm.compiler.core.common.type.Stamp b
        end local 2 // org.graalvm.compiler.core.common.type.Stamp aExact
        end local 1 // org.graalvm.compiler.core.common.type.Stamp a
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
            1    5     1       a  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    5     2  aExact  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    5     3       b  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMeet3();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 63
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$C;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$D;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.check:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 64
            return
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMeet4();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 68
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$D;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* dExactNonNull */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp dExactNonNull
         1: .line 69
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$C;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* cExactNonNull */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp cExactNonNull
         2: .line 70
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 3 /* aNonNull */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp aNonNull
         3: .line 71
            aload 3 /* aNonNull */
            aload 2 /* cExactNonNull */
            aload 1 /* dExactNonNull */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampMeetTest.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 72
            return
        end local 3 // org.graalvm.compiler.core.common.type.Stamp aNonNull
        end local 2 // org.graalvm.compiler.core.common.type.Stamp cExactNonNull
        end local 1 // org.graalvm.compiler.core.common.type.Stamp dExactNonNull
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
            1    5     1  dExactNonNull  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    5     2  cExactNonNull  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    5     3       aNonNull  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMeet5();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 76
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$D;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* dExact */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp dExact
         1: .line 77
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$C;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* c */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp c
         2: .line 78
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 3 /* a */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp a
         3: .line 79
            aload 3 /* a */
            aload 1 /* dExact */
            aload 2 /* c */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampMeetTest.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 80
            return
        end local 3 // org.graalvm.compiler.core.common.type.Stamp a
        end local 2 // org.graalvm.compiler.core.common.type.Stamp c
        end local 1 // org.graalvm.compiler.core.common.type.Stamp dExact
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
            1    5     1  dExact  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    5     2       c  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    5     3       a  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMeet6();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 84
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$D;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* dExactNonNull */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp dExactNonNull
         1: .line 85
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.alwaysNull:()Lorg/graalvm/compiler/core/common/type/Stamp;
            astore 2 /* alwaysNull */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp alwaysNull
         2: .line 86
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$D;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 3 /* dExact */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp dExact
         3: .line 87
            aload 3 /* dExact */
            aload 1 /* dExactNonNull */
            aload 2 /* alwaysNull */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampMeetTest.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 88
            return
        end local 3 // org.graalvm.compiler.core.common.type.Stamp dExact
        end local 2 // org.graalvm.compiler.core.common.type.Stamp alwaysNull
        end local 1 // org.graalvm.compiler.core.common.type.Stamp dExactNonNull
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0    5     0           this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
            1    5     1  dExactNonNull  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    5     2     alwaysNull  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    5     3         dExact  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMeet7();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 92
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* aExact */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp aExact
         1: .line 93
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$E;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* e */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp e
         2: .line 94
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 3 /* a */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp a
         3: .line 95
            aload 3 /* a */
            aload 1 /* aExact */
            aload 2 /* e */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampMeetTest.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 96
            return
        end local 3 // org.graalvm.compiler.core.common.type.Stamp a
        end local 2 // org.graalvm.compiler.core.common.type.Stamp e
        end local 1 // org.graalvm.compiler.core.common.type.Stamp aExact
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0    5     0    this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
            1    5     1  aExact  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    5     2       e  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    5     3       a  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMeet8();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 100
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.check:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 101
            return
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMeet9();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 105
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$Base1;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* base1 */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp base1
         1: .line 106
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$ImplOrder1;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* ord1 */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp ord1
         2: .line 107
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$ImplOrder2;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 3 /* ord2 */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp ord2
         3: .line 108
            aload 1 /* base1 */
            aload 2 /* ord1 */
            aload 3 /* ord2 */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampMeetTest.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 109
            return
        end local 3 // org.graalvm.compiler.core.common.type.Stamp ord2
        end local 2 // org.graalvm.compiler.core.common.type.Stamp ord1
        end local 1 // org.graalvm.compiler.core.common.type.Stamp base1
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
            1    5     1  base1  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    5     2   ord1  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    5     3   ord2  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMeet10();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=4, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 113
            aload 0 /* this */
            ldc Ljava/lang/Object;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* base1 */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp base1
         1: .line 114
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$Deep1;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* ord1 */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp ord1
         2: .line 115
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$Deep2;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 3 /* ord2 */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp ord2
         3: .line 116
            aload 1 /* base1 */
            aload 2 /* ord1 */
            aload 3 /* ord2 */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampMeetTest.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 117
            return
        end local 3 // org.graalvm.compiler.core.common.type.Stamp ord2
        end local 2 // org.graalvm.compiler.core.common.type.Stamp ord1
        end local 1 // org.graalvm.compiler.core.common.type.Stamp base1
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    5     0   this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
            1    5     1  base1  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    5     2   ord1  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    5     3   ord2  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMeetInterface0();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 121
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$C;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$I;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$I;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.check:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 122
            return
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMeetInterface1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 126
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$I;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$SubI1;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$I;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.check:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 127
            return
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMeetInterface2();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 131
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$SubI1;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$SubI2;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$I;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.check:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 132
            return
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMeetInterface3();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 136
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$SubI4;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$SubI5;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$SubI3;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.check:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 137
            return
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testMeetInterface4();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=1, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 141
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$SubI4;
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$SubI6;
            ldc Ljava/lang/Object;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.check:(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V
         1: .line 142
            return
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  private void check(java.lang.Class<?>, java.lang.Class<?>, java.lang.Class<?>);
    descriptor: (Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/Class;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=3, locals=7, args_size=4
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
        start local 1 // java.lang.Class a
        start local 2 // java.lang.Class b
        start local 3 // java.lang.Class result
         0: .line 145
            aload 0 /* this */
            aload 1 /* a */
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 4 /* aStamp */
        start local 4 // org.graalvm.compiler.core.common.type.Stamp aStamp
         1: .line 146
            aload 0 /* this */
            aload 2 /* b */
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 5 /* bStamp */
        start local 5 // org.graalvm.compiler.core.common.type.Stamp bStamp
         2: .line 147
            aload 0 /* this */
            aload 3 /* result */
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 6 /* resultStamp */
        start local 6 // org.graalvm.compiler.core.common.type.ObjectStamp resultStamp
         3: .line 148
            aload 6 /* resultStamp */
            aload 4 /* aStamp */
            aload 5 /* bStamp */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampMeetTest.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/Object;Ljava/lang/Object;)V
         4: .line 149
            return
        end local 6 // org.graalvm.compiler.core.common.type.ObjectStamp resultStamp
        end local 5 // org.graalvm.compiler.core.common.type.Stamp bStamp
        end local 4 // org.graalvm.compiler.core.common.type.Stamp aStamp
        end local 3 // java.lang.Class result
        end local 2 // java.lang.Class b
        end local 1 // java.lang.Class a
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0    5     0         this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
            0    5     1            a  Ljava/lang/Class<*>;
            0    5     2            b  Ljava/lang/Class<*>;
            0    5     3       result  Ljava/lang/Class<*>;
            1    5     4       aStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            2    5     5       bStamp  Lorg/graalvm/compiler/core/common/type/Stamp;
            3    5     6  resultStamp  Lorg/graalvm/compiler/core/common/type/ObjectStamp;
    Signature: (Ljava/lang/Class<*>;Ljava/lang/Class<*>;Ljava/lang/Class<*>;)V
    MethodParameters:
        Name  Flags
      a       
      b       
      result  

  public void testMeetIllegal1();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=10, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 153
            bipush 7
            anewarray java.lang.Class
            dup
            iconst_0
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            aastore
            dup
            iconst_1
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$B;
            aastore
            dup
            iconst_2
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$C;
            aastore
            dup
            iconst_3
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$D;
            aastore
            dup
            iconst_4
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$E;
            aastore
            dup
            iconst_5
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$I;
            aastore
            dup
            bipush 6
            ldc Ljava/lang/Object;
            aastore
            dup
            astore 4
            arraylength
            istore 3
            iconst_0
            istore 2
            goto 11
      StackMap locals: org.graalvm.compiler.nodes.test.ObjectStampMeetTest top int int java.lang.Class[]
      StackMap stack:
         1: aload 4
            iload 2
            aaload
            astore 1 /* clazz */
        start local 1 // java.lang.Class clazz
         2: .line 154
            aload 0 /* this */
            aload 1 /* clazz */
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            astore 5 /* type */
        start local 5 // org.graalvm.compiler.core.common.type.TypeReference type
         3: .line 155
            iconst_4
            anewarray org.graalvm.compiler.core.common.type.Stamp
            dup
            iconst_0
            aload 5 /* type */
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            aastore
            dup
            iconst_1
            aload 5 /* type */
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            aastore
            dup
            iconst_2
            aload 5 /* type */
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            aastore
            dup
            iconst_3
         4: .line 156
            aload 5 /* type */
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.objectNonNull:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            aastore
            dup
            astore 9
            arraylength
            istore 8
            iconst_0
            istore 7
            goto 9
      StackMap locals: org.graalvm.compiler.nodes.test.ObjectStampMeetTest java.lang.Class int int java.lang.Class[] org.graalvm.compiler.core.common.type.TypeReference top int int org.graalvm.compiler.core.common.type.Stamp[]
      StackMap stack:
         5: aload 9
            iload 7
            aaload
            astore 6 /* test */
        start local 6 // org.graalvm.compiler.core.common.type.Stamp test
         6: .line 157
            aload 5 /* type */
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.getType:()Ljdk/vm/ci/meta/ResolvedJavaType;
            invokeinterface jdk.vm.ci.meta.ResolvedJavaType.isConcrete:()Z
            ifne 7
            aload 6 /* test */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isExactType:()Z
            ifne 8
         7: .line 158
      StackMap locals: org.graalvm.compiler.nodes.test.ObjectStampMeetTest java.lang.Class int int java.lang.Class[] org.graalvm.compiler.core.common.type.TypeReference org.graalvm.compiler.core.common.type.Stamp int int org.graalvm.compiler.core.common.type.Stamp[]
      StackMap stack:
            new java.lang.StringBuilder
            dup
            ldc "meeting empty and "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 6 /* test */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            aload 6 /* test */
            getstatic jdk.vm.ci.meta.JavaKind.Object:Ljdk/vm/ci/meta/JavaKind;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.empty:(Ljdk/vm/ci/meta/JavaKind;)Lorg/graalvm/compiler/core/common/type/Stamp;
            aload 6 /* test */
            invokestatic org.graalvm.compiler.nodes.test.ObjectStampMeetTest.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            invokestatic org.junit.Assert.assertEquals:(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V
        end local 6 // org.graalvm.compiler.core.common.type.Stamp test
         8: .line 155
      StackMap locals: org.graalvm.compiler.nodes.test.ObjectStampMeetTest java.lang.Class int int java.lang.Class[] org.graalvm.compiler.core.common.type.TypeReference top int int org.graalvm.compiler.core.common.type.Stamp[]
      StackMap stack:
            iinc 7 1
      StackMap locals:
      StackMap stack:
         9: iload 7
            iload 8
            if_icmplt 5
        end local 5 // org.graalvm.compiler.core.common.type.TypeReference type
        end local 1 // java.lang.Class clazz
        10: .line 153
            iinc 2 1
      StackMap locals: org.graalvm.compiler.nodes.test.ObjectStampMeetTest top int int java.lang.Class[]
      StackMap stack:
        11: iload 2
            iload 3
            if_icmplt 1
        12: .line 162
            return
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
            2   10     1  clazz  Ljava/lang/Class<*>;
            3   10     5   type  Lorg/graalvm/compiler/core/common/type/TypeReference;
            6    8     6   test  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()

  public void testAlwaysArray();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=7, args_size=1
        start local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
         0: .line 166
            aload 0 /* this */
            ldc Ljava/lang/Object;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 1 /* object */
        start local 1 // org.graalvm.compiler.core.common.type.Stamp object
         1: .line 167
            aload 0 /* this */
            ldc Ljava/lang/Object;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokevirtual org.graalvm.compiler.core.common.type.TypeReference.asExactReference:()Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 2 /* objectExact */
        start local 2 // org.graalvm.compiler.core.common.type.Stamp objectExact
         2: .line 168
            aload 0 /* this */
            ldc [Ljava/lang/Object;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 3 /* objectArray */
        start local 3 // org.graalvm.compiler.core.common.type.Stamp objectArray
         3: .line 169
            aload 0 /* this */
            ldc Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 4 /* a */
        start local 4 // org.graalvm.compiler.core.common.type.Stamp a
         4: .line 170
            aload 0 /* this */
            ldc [Lorg/graalvm/compiler/nodes/test/AbstractObjectStampTest$A;
            invokevirtual org.graalvm.compiler.nodes.test.ObjectStampMeetTest.getType:(Ljava/lang/Class;)Lorg/graalvm/compiler/core/common/type/TypeReference;
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:(Lorg/graalvm/compiler/core/common/type/TypeReference;)Lorg/graalvm/compiler/core/common/type/ObjectStamp;
            astore 5 /* aArray */
        start local 5 // org.graalvm.compiler.core.common.type.Stamp aArray
         5: .line 172
            invokestatic org.graalvm.compiler.core.common.type.StampFactory.object:()Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.asAlwaysArray:()Lorg/graalvm/compiler/core/common/type/AbstractObjectStamp;
            astore 6 /* alwaysArray */
        start local 6 // org.graalvm.compiler.core.common.type.Stamp alwaysArray
         6: .line 174
            aload 1 /* object */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         7: .line 175
            aload 2 /* objectExact */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
         8: .line 176
            aload 3 /* objectArray */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
         9: .line 177
            aload 4 /* a */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        10: .line 178
            aload 5 /* aArray */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        11: .line 179
            aload 6 /* alwaysArray */
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        12: .line 181
            aload 1 /* object */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        13: .line 182
            aload 2 /* objectExact */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        14: .line 183
            aload 3 /* objectArray */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        15: .line 184
            aload 4 /* a */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        16: .line 185
            aload 5 /* aArray */
            aload 6 /* alwaysArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        17: .line 187
            aload 1 /* object */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        18: .line 188
            aload 2 /* objectExact */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        19: .line 189
            aload 4 /* a */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        20: .line 190
            aload 5 /* aArray */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        21: .line 191
            aload 6 /* alwaysArray */
            aload 3 /* objectArray */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertTrue:(Z)V
        22: .line 193
            aload 1 /* object */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        23: .line 194
            aload 2 /* objectExact */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        24: .line 195
            aload 3 /* objectArray */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        25: .line 196
            aload 5 /* aArray */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        26: .line 197
            aload 6 /* alwaysArray */
            aload 4 /* a */
            invokevirtual org.graalvm.compiler.core.common.type.Stamp.meet:(Lorg/graalvm/compiler/core/common/type/Stamp;)Lorg/graalvm/compiler/core/common/type/Stamp;
            checkcast org.graalvm.compiler.core.common.type.ObjectStamp
            invokevirtual org.graalvm.compiler.core.common.type.ObjectStamp.isAlwaysArray:()Z
            invokestatic org.junit.Assert.assertFalse:(Z)V
        27: .line 198
            return
        end local 6 // org.graalvm.compiler.core.common.type.Stamp alwaysArray
        end local 5 // org.graalvm.compiler.core.common.type.Stamp aArray
        end local 4 // org.graalvm.compiler.core.common.type.Stamp a
        end local 3 // org.graalvm.compiler.core.common.type.Stamp objectArray
        end local 2 // org.graalvm.compiler.core.common.type.Stamp objectExact
        end local 1 // org.graalvm.compiler.core.common.type.Stamp object
        end local 0 // org.graalvm.compiler.nodes.test.ObjectStampMeetTest this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   28     0         this  Lorg/graalvm/compiler/nodes/test/ObjectStampMeetTest;
            1   28     1       object  Lorg/graalvm/compiler/core/common/type/Stamp;
            2   28     2  objectExact  Lorg/graalvm/compiler/core/common/type/Stamp;
            3   28     3  objectArray  Lorg/graalvm/compiler/core/common/type/Stamp;
            4   28     4            a  Lorg/graalvm/compiler/core/common/type/Stamp;
            5   28     5       aArray  Lorg/graalvm/compiler/core/common/type/Stamp;
            6   28     6  alwaysArray  Lorg/graalvm/compiler/core/common/type/Stamp;
    RuntimeVisibleAnnotations: 
      org.junit.Test()
}
SourceFile: "ObjectStampMeetTest.java"
InnerClasses:
  protected A = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$A of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected B = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$B of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected abstract Base1 = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$Base1 of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected C = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$C of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected D = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$D of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected abstract Deep1 = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$Deep1 of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected abstract Deep2 = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$Deep2 of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected abstract E = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$E of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected abstract I = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$I of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected abstract ImplOrder1 = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$ImplOrder1 of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected abstract ImplOrder2 = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$ImplOrder2 of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected abstract SubI1 = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$SubI1 of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected abstract SubI2 = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$SubI2 of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected abstract SubI3 = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$SubI3 of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected abstract SubI4 = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$SubI4 of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected abstract SubI5 = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$SubI5 of org.graalvm.compiler.nodes.test.AbstractObjectStampTest
  protected abstract SubI6 = org.graalvm.compiler.nodes.test.AbstractObjectStampTest$SubI6 of org.graalvm.compiler.nodes.test.AbstractObjectStampTest