1 /*
   2  * Copyright (c) 2018, 2024, Oracle and/or its affiliates. All rights reserved.
   3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   4  *
   5  * This code is free software; you can redistribute it and/or modify it
   6  * under the terms of the GNU General Public License version 2 only, as
   7  * published by the Free Software Foundation.
   8  *
   9  * This code is distributed in the hope that it will be useful, but WITHOUT
  10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  12  * version 2 for more details (a copy is included in the LICENSE file that
  13  * accompanied this code).
  14  *
  15  * You should have received a copy of the GNU General Public License version
  16  * 2 along with this work; if not, write to the Free Software Foundation,
  17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  18  *
  19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  20  * or visit www.oracle.com if you need additional information or have any
  21  * questions.
  22  *
  23  */
  24 
  25 // This file contains multiple illegal inline type classes that should cause
  26 // ClassFormatError exceptions when attempted to be loaded.
  27 //
  28 // Many of these test were originally generated from this Java file and then
  29 // modified to cause ClassFormatError or ClassCircularityError exceptions.  The
  30 // '(bad)' comments in most of the tests show where the modifications were made.
  31 //
  32 // final inline class Value {
  33 //     static final Value VT = makeValue(0x01234567);
  34 //     final int int_v;
  35 //     Value() {
  36 //         int_v = 1;
  37 //     }
  38 //     static Value makeValue(int x) {
  39 //         Value v = Value.default;
  40 //         v = __WithField(v.int_v, x);
  41 //         return v;
  42 //     }
  43 // }
  44 
  45 
  46 // Test that class modifiers cannot have both ACC_PRIMITIVE and ACC_ABSTRACT set.
  47 //
  48 class ValueAbstract {
  49   0xCAFEBABE;
  50   0; // minor version
  51   66; // version
  52   [28] { // Constant Pool
  53     ; // first element is empty
  54     Method #7 #23; // #1     at 0x0A
  55     Field #3 #24; // #2     at 0x0F
  56     class #9; // #3     at 0x14
  57     int 0x01234567; // #4     at 0x17
  58     Method #3 #25; // #5     at 0x1C
  59     Field #3 #26; // #6     at 0x21
  60     class #27; // #7     at 0x26
  61     Utf8 "VT"; // #8     at 0x29
  62     Utf8 "ValueAbstract"; // #9     at 0x2E
  63     Utf8 "ValueTypes"; // #10     at 0x36
  64     Utf8 "LValueAbstract;"; // #11     at 0x43
  65     Utf8 "int_v"; // #12     at 0x4D
  66     Utf8 "I"; // #13     at 0x55
  67     Utf8 "<init>"; // #14     at 0x59
  68     Utf8 "()V"; // #15     at 0x62
  69     Utf8 "Code"; // #16     at 0x68
  70     Utf8 "LineNumberTable"; // #17     at 0x6F
  71     Utf8 "makeValueAbstract"; // #18     at 0x81
  72     Utf8 "(I)LValueAbstract;"; // #19     at 0x8D
  73     Utf8 "<clinit>"; // #20     at 0x9A
  74     Utf8 "SourceFile"; // #21     at 0xA5
  75     Utf8 "ValueAbstract.java"; // #22     at 0xB2
  76     NameAndType #14 #15; // #23     at 0xBF
  77     NameAndType #12 #13; // #24     at 0xC4
  78     NameAndType #18 #19; // #25     at 0xC9
  79     NameAndType #8 #11; // #26     at 0xCE
  80     Utf8 "java/lang/Object"; // #27     at 0xD3
  81   } // Constant Pool
  82 
  83   0x0C30; // access [  ACC_PRIMITIVE ACC_ABSTRACT(bad) ACC_SUPER ACC_FINAL ]
  84   #3;// this_cpx
  85   #7;// super_cpx
  86 
  87   [0] { // Interfaces
  88   } // Interfaces
  89 
  90   [2] { // fields
  91     { // Member at 0xF0
  92       0x0118; // access
  93       #8; // name_cpx
  94       #11; // sig_cpx
  95       [0] { // Attributes
  96       } // Attributes
  97     } // Member
  98     ;
  99     { // Member at 0xF8
 100       0x0010; // access
 101       #12; // name_cpx
 102       #13; // sig_cpx
 103       [0] { // Attributes
 104       } // Attributes
 105     } // Member
 106   } // fields
 107 
 108   [3] { // methods
 109     { // Member at 0x0102
 110       0x0000; // access
 111       #14; // name_cpx
 112       #15; // sig_cpx
 113       [1] { // Attributes
 114         Attr(#16, 42) { // Code at 0x010A
 115           2; // max_stack
 116           1; // max_locals
 117           Bytes[10]{
 118             0x2AB700012A04B500;
 119             0x02B1;
 120           };
 121           [0] { // Traps
 122           } // end Traps
 123           [1] { // Attributes
 124             Attr(#17, 14) { // LineNumberTable at 0x0126
 125               [3] { // LineNumberTable
 126                 0  4; //  at 0x0132
 127                 4  5; //  at 0x0136
 128                 9  6; //  at 0x013A
 129               }
 130             } // end LineNumberTable
 131           } // Attributes
 132         } // end Code
 133       } // Attributes
 134     } // Member
 135     ;
 136     { // Member at 0x013A
 137       0x0008; // access
 138       #18; // name_cpx
 139       #19; // sig_cpx
 140       [1] { // Attributes
 141         Attr(#16, 44) { // Code at 0x0142
 142           2; // max_stack
 143           2; // max_locals
 144           Bytes[12]{
 145             0xCB00034C2B1ACC00;
 146             0x024C2BB0;
 147           };
 148           [0] { // Traps
 149           } // end Traps
 150           [1] { // Attributes
 151             Attr(#17, 14) { // LineNumberTable at 0x0160
 152               [3] { // LineNumberTable
 153                 0  8; //  at 0x016C
 154                 4  9; //  at 0x0170
 155                 10  10; //  at 0x0174
 156               }
 157             } // end LineNumberTable
 158           } // Attributes
 159         } // end Code
 160       } // Attributes
 161     } // Member
 162     ;
 163     { // Member at 0x0174
 164       0x0008; // access
 165       #20; // name_cpx
 166       #15; // sig_cpx
 167       [1] { // Attributes
 168         Attr(#16, 33) { // Code at 0x017C
 169           1; // max_stack
 170           0; // max_locals
 171           Bytes[9]{
 172             0x1204B80005B30006;
 173             0xB1;
 174           };
 175           [0] { // Traps
 176           } // end Traps
 177           [1] { // Attributes
 178             Attr(#17, 6) { // LineNumberTable at 0x0197
 179               [1] { // LineNumberTable
 180                 0  2; //  at 0x01A3
 181               }
 182             } // end LineNumberTable
 183           } // Attributes
 184         } // end Code
 185       } // Attributes
 186     } // Member
 187   } // methods
 188 
 189   [2] { // Attributes
 190     Attr(#21, 2) { // SourceFile at 0x01A5
 191       #22;
 192     } // end SourceFile
 193     ;
 194     Attr(#10, 4) { // ValueTypes at 0x01AD
 195       0x00010003;
 196     } // end ValueTypes
 197   } // Attributes
 198 } // end class ValueAbstract
 199 
 200 //////////////////////////////////////////////////////////////////////
 201 
 202 // Test that class modifiers cannot have both ACC_PRIMITIVE and ACC_ENUM set.
 203 //
 204 class ValueEnum {
 205   0xCAFEBABE;
 206   0; // minor version
 207   66; // version
 208   [28] { // Constant Pool
 209     ; // first element is empty
 210     Method #7 #23; // #1     at 0x0A
 211     Field #3 #24; // #2     at 0x0F
 212     class #9; // #3     at 0x14
 213     int 0x01234567; // #4     at 0x17
 214     Method #3 #25; // #5     at 0x1C
 215     Field #3 #26; // #6     at 0x21
 216     class #27; // #7     at 0x26
 217     Utf8 "VT"; // #8     at 0x29
 218     Utf8 "ValueEnum"; // #9     at 0x2E
 219     Utf8 "ValueTypes"; // #10     at 0x36
 220     Utf8 "LValueEnum;"; // #11     at 0x43
 221     Utf8 "int_v"; // #12     at 0x4D
 222     Utf8 "I"; // #13     at 0x55
 223     Utf8 "<init>"; // #14     at 0x59
 224     Utf8 "()V"; // #15     at 0x62
 225     Utf8 "Code"; // #16     at 0x68
 226     Utf8 "LineNumberTable"; // #17     at 0x6F
 227     Utf8 "makeValueEnum"; // #18     at 0x81
 228     Utf8 "(I)LValueEnum;"; // #19     at 0x8D
 229     Utf8 "<clinit>"; // #20     at 0x9A
 230     Utf8 "SourceFile"; // #21     at 0xA5
 231     Utf8 "ValueEnum.java"; // #22     at 0xB2
 232     NameAndType #14 #15; // #23     at 0xBF
 233     NameAndType #12 #13; // #24     at 0xC4
 234     NameAndType #18 #19; // #25     at 0xC9
 235     NameAndType #8 #11; // #26     at 0xCE
 236     Utf8 "java/lang/Object"; // #27     at 0xD3
 237   } // Constant Pool
 238 
 239   0x04850; // access [  ACC_VALUE ACC_PRIMITIVE ACC_ENUM(bad) ACC_FINAL ]
 240   #3;// this_cpx
 241   #7;// super_cpx
 242 
 243   [0] { // Interfaces
 244   } // Interfaces
 245 
 246   [2] { // fields
 247     { // Member at 0xF0
 248       0x0118; // access
 249       #8; // name_cpx
 250       #11; // sig_cpx
 251       [0] { // Attributes
 252       } // Attributes
 253     } // Member
 254     ;
 255     { // Member at 0xF8
 256       0x0010; // access
 257       #12; // name_cpx
 258       #13; // sig_cpx
 259       [0] { // Attributes
 260       } // Attributes
 261     } // Member
 262   } // fields
 263 
 264   [3] { // methods
 265     { // Member at 0x0102
 266       0x0000; // access
 267       #14; // name_cpx
 268       #15; // sig_cpx
 269       [1] { // Attributes
 270         Attr(#16, 42) { // Code at 0x010A
 271           2; // max_stack
 272           1; // max_locals
 273           Bytes[10]{
 274             0x2AB700012A04B500;
 275             0x02B1;
 276           };
 277           [0] { // Traps
 278           } // end Traps
 279           [1] { // Attributes
 280             Attr(#17, 14) { // LineNumberTable at 0x0126
 281               [3] { // LineNumberTable
 282                 0  4; //  at 0x0132
 283                 4  5; //  at 0x0136
 284                 9  6; //  at 0x013A
 285               }
 286             } // end LineNumberTable
 287           } // Attributes
 288         } // end Code
 289       } // Attributes
 290     } // Member
 291     ;
 292     { // Member at 0x013A
 293       0x0008; // access
 294       #18; // name_cpx
 295       #19; // sig_cpx
 296       [1] { // Attributes
 297         Attr(#16, 44) { // Code at 0x0142
 298           2; // max_stack
 299           2; // max_locals
 300           Bytes[12]{
 301             0xCB00034C2B1ACC00;
 302             0x024C2BB0;
 303           };
 304           [0] { // Traps
 305           } // end Traps
 306           [1] { // Attributes
 307             Attr(#17, 14) { // LineNumberTable at 0x0160
 308               [3] { // LineNumberTable
 309                 0  8; //  at 0x016C
 310                 4  9; //  at 0x0170
 311                 10  10; //  at 0x0174
 312               }
 313             } // end LineNumberTable
 314           } // Attributes
 315         } // end Code
 316       } // Attributes
 317     } // Member
 318     ;
 319     { // Member at 0x0174
 320       0x0008; // access
 321       #20; // name_cpx
 322       #15; // sig_cpx
 323       [1] { // Attributes
 324         Attr(#16, 33) { // Code at 0x017C
 325           1; // max_stack
 326           0; // max_locals
 327           Bytes[9]{
 328             0x1204B80005B30006;
 329             0xB1;
 330           };
 331           [0] { // Traps
 332           } // end Traps
 333           [1] { // Attributes
 334             Attr(#17, 6) { // LineNumberTable at 0x0197
 335               [1] { // LineNumberTable
 336                 0  2; //  at 0x01A3
 337               }
 338             } // end LineNumberTable
 339           } // Attributes
 340         } // end Code
 341       } // Attributes
 342     } // Member
 343   } // methods
 344 
 345   [2] { // Attributes
 346     Attr(#21, 2) { // SourceFile at 0x01A5
 347       #22;
 348     } // end SourceFile
 349     ;
 350     Attr(#10, 4) { // ValueTypes at 0x01AD
 351       0x00010003;
 352     } // end ValueTypes
 353   } // Attributes
 354 } // end class ValueEnum
 355 
 356 //////////////////////////////////////////////////////////////////////
 357 
 358 // Test that inline type fields must be final.
 359 //
 360 class ValueFieldNotFinal {
 361   0xCAFEBABE;
 362   0; // minor version
 363   66; // version
 364   [28] { // Constant Pool
 365     ; // first element is empty
 366     Method #7 #23; // #1     at 0x0A
 367     Field #3 #24; // #2     at 0x0F
 368     class #9; // #3     at 0x14
 369     int 0x01234567; // #4     at 0x17
 370     Method #3 #25; // #5     at 0x1C
 371     Field #3 #26; // #6     at 0x21
 372     class #27; // #7     at 0x26
 373     Utf8 "VT"; // #8     at 0x29
 374     Utf8 "ValueFieldNotFinal"; // #9     at 0x2E
 375     Utf8 "ValueTypes"; // #10     at 0x36
 376     Utf8 "LValueFieldNotFinal;"; // #11     at 0x43
 377     Utf8 "int_v"; // #12     at 0x4D
 378     Utf8 "I"; // #13     at 0x55
 379     Utf8 "<init>"; // #14     at 0x59
 380     Utf8 "()V"; // #15     at 0x62
 381     Utf8 "Code"; // #16     at 0x68
 382     Utf8 "LineNumberTable"; // #17     at 0x6F
 383     Utf8 "makeValueFieldNotFinal"; // #18     at 0x81
 384     Utf8 "(I)LValueFieldNotFinal;"; // #19     at 0x8D
 385     Utf8 "<clinit>"; // #20     at 0x9A
 386     Utf8 "SourceFile"; // #21     at 0xA5
 387     Utf8 "ValueFieldNotFinal.java"; // #22     at 0xB2
 388     NameAndType #14 #15; // #23     at 0xBF
 389     NameAndType #12 #13; // #24     at 0xC4
 390     NameAndType #18 #19; // #25     at 0xC9
 391     NameAndType #8 #11; // #26     at 0xCE
 392     Utf8 "java/lang/Object"; // #27     at 0xD3
 393   } // Constant Pool
 394 
 395   0x0850; // access [ ACC_VALUE ACC_PRIMITIVE ACC_FINAL ]
 396   #3;// this_cpx
 397   #7;// super_cpx
 398 
 399   [0] { // Interfaces
 400   } // Interfaces
 401 
 402   [2] { // fields
 403     { // Member at 0xF0
 404       0x0118; // access
 405       #8; // name_cpx
 406       #11; // sig_cpx
 407       [0] { // Attributes
 408       } // Attributes
 409     } // Member
 410     ;
 411     { // Member at 0xF8
 412       0x0000; // access [ Field not ACC_FINAL(bad) ]
 413       #12; // name_cpx
 414       #13; // sig_cpx
 415       [0] { // Attributes
 416       } // Attributes
 417     } // Member
 418   } // fields
 419 
 420   [3] { // methods
 421     { // Member at 0x0102
 422       0x0000; // access
 423       #14; // name_cpx
 424       #15; // sig_cpx
 425       [1] { // Attributes
 426         Attr(#16, 42) { // Code at 0x010A
 427           2; // max_stack
 428           1; // max_locals
 429           Bytes[10]{
 430             0x2AB700012A04B500;
 431             0x02B1;
 432           };
 433           [0] { // Traps
 434           } // end Traps
 435           [1] { // Attributes
 436             Attr(#17, 14) { // LineNumberTable at 0x0126
 437               [3] { // LineNumberTable
 438                 0  4; //  at 0x0132
 439                 4  5; //  at 0x0136
 440                 9  6; //  at 0x013A
 441               }
 442             } // end LineNumberTable
 443           } // Attributes
 444         } // end Code
 445       } // Attributes
 446     } // Member
 447     ;
 448     { // Member at 0x013A
 449       0x0008; // access
 450       #18; // name_cpx
 451       #19; // sig_cpx
 452       [1] { // Attributes
 453         Attr(#16, 44) { // Code at 0x0142
 454           2; // max_stack
 455           2; // max_locals
 456           Bytes[12]{
 457             0xCB00034C2B1ACC00;
 458             0x024C2BB0;
 459           };
 460           [0] { // Traps
 461           } // end Traps
 462           [1] { // Attributes
 463             Attr(#17, 14) { // LineNumberTable at 0x0160
 464               [3] { // LineNumberTable
 465                 0  8; //  at 0x016C
 466                 4  9; //  at 0x0170
 467                 10  10; //  at 0x0174
 468               }
 469             } // end LineNumberTable
 470           } // Attributes
 471         } // end Code
 472       } // Attributes
 473     } // Member
 474     ;
 475     { // Member at 0x0174
 476       0x0008; // access
 477       #20; // name_cpx
 478       #15; // sig_cpx
 479       [1] { // Attributes
 480         Attr(#16, 33) { // Code at 0x017C
 481           1; // max_stack
 482           0; // max_locals
 483           Bytes[9]{
 484             0x1204B80005B30006;
 485             0xB1;
 486           };
 487           [0] { // Traps
 488           } // end Traps
 489           [1] { // Attributes
 490             Attr(#17, 6) { // LineNumberTable at 0x0197
 491               [1] { // LineNumberTable
 492                 0  2; //  at 0x01A3
 493               }
 494             } // end LineNumberTable
 495           } // Attributes
 496         } // end Code
 497       } // Attributes
 498     } // Member
 499   } // methods
 500 
 501   [2] { // Attributes
 502     Attr(#21, 2) { // SourceFile at 0x01A5
 503       #22;
 504     } // end SourceFile
 505     ;
 506     Attr(#10, 4) { // ValueTypes at 0x01AD
 507       0x00010003;
 508     } // end ValueTypes
 509   } // Attributes
 510 } // end class ValueFieldNotFinal
 511 
 512 //////////////////////////////////////////////////////////////////////
 513 
 514 // Test that class modifiers cannot have both ACC_PRIMITIVE and ACC_INTERFACE set.
 515 //
 516 class ValueInterface {
 517   0xCAFEBABE;
 518   0; // minor version
 519   66; // version
 520   [27] { // Constant Pool
 521     ; // first element is empty
 522     Method #7 #21; // #1     at 0x0A
 523     Field #3 #22; // #2     at 0x0F
 524     class #23; // #3     at 0x14
 525     int 0x01234567; // #4     at 0x17
 526     Method #3 #24; // #5     at 0x1C
 527     Field #3 #25; // #6     at 0x21
 528     class #26; // #7     at 0x26
 529     Utf8 "VT"; // #8     at 0x29
 530     Utf8 "LValueInterface;"; // #9     at 0x2E
 531     Utf8 "int_v"; // #10     at 0x3C
 532     Utf8 "I"; // #11     at 0x44
 533     Utf8 "<init>"; // #12     at 0x48
 534     Utf8 "()V"; // #13     at 0x51
 535     Utf8 "Code"; // #14     at 0x57
 536     Utf8 "LineNumberTable"; // #15     at 0x5E
 537     Utf8 "makeValueInterface"; // #16     at 0x70
 538     Utf8 "(I)LValueInterface;"; // #17     at 0x80
 539     Utf8 "<clinit>"; // #18     at 0x91
 540     Utf8 "SourceFile"; // #19     at 0x9C
 541     Utf8 "ValueInterface.java"; // #20     at 0xA9
 542     NameAndType #12 #13; // #21     at 0xBA
 543     NameAndType #10 #11; // #22     at 0xBF
 544     Utf8 "ValueInterface"; // #23     at 0xC4
 545     NameAndType #16 #17; // #24     at 0xD0
 546     NameAndType #8 #9; // #25     at 0xD5
 547     Utf8 "java/lang/Object"; // #26     at 0xDA
 548   } // Constant Pool
 549 
 550   0x0A30; // access [ ACC_PRIMITIVE ACC_INTERFACE(bad) ACC_SUPER ACC_FINAL ]
 551   #3;// this_cpx
 552   #7;// super_cpx
 553 
 554   [0] { // Interfaces
 555   } // Interfaces
 556 
 557   [2] { // fields
 558     { // Member at 0xF7
 559       0x0018; // access
 560       #8; // name_cpx
 561       #9; // sig_cpx
 562       [0] { // Attributes
 563       } // Attributes
 564     } // Member
 565     ;
 566     { // Member at 0xFF
 567       0x0010; // access
 568       #10; // name_cpx
 569       #11; // sig_cpx
 570       [0] { // Attributes
 571       } // Attributes
 572     } // Member
 573   } // fields
 574 
 575   [1] { // methods
 576     { // Member at 0x0141
 577       0x0008; // access
 578       #16; // name_cpx
 579       #17; // sig_cpx
 580       [1] { // Attributes
 581         Attr(#14, 44) { // Code at 0x0149
 582           2; // max_stack
 583           2; // max_locals
 584           Bytes[12]{
 585             0xCB00034C2B1ACC00;
 586             0x024C2BB0;
 587           };
 588           [0] { // Traps
 589           } // end Traps
 590           [1] { // Attributes
 591             Attr(#15, 14) { // LineNumberTable at 0x0167
 592               [3] { // LineNumberTable
 593                 0  8; //  at 0x0173
 594                 4  9; //  at 0x0177
 595                 10  10; //  at 0x017B
 596               }
 597             } // end LineNumberTable
 598           } // Attributes
 599         } // end Code
 600       } // Attributes
 601     } // Member
 602   } // methods
 603 
 604   [1] { // Attributes
 605     Attr(#19, 2) { // SourceFile at 0x01AC
 606       #20;
 607     } // end SourceFile
 608   } // Attributes
 609 } // end class ValueInterface
 610 
 611 //////////////////////////////////////////////////////////////////////
 612 
 613 // Test that inline type instance methods cannot be synchronized.
 614 //
 615 // final inline class ValueMethodSynch {
 616 //     final int int_v;
 617 //
 618 //     ValueMethodSynch() { int_v = 1; }
 619 //
 620 //     int getInt(int x) { return x; }
 621 // }
 622 
 623 class ValueMethodSynch {
 624   0xCAFEBABE;
 625   0; // minor version
 626   66; // version
 627   [46] { // Constant Pool
 628     ; // first element is empty
 629     class #23; // #1     at 0x0A
 630     Field #1 #24; // #2     at 0x0D
 631     InvokeDynamic 0s #27; // #3     at 0x12
 632     InvokeDynamic 0s #28; // #4     at 0x17
 633     InvokeDynamic 0s #29; // #5     at 0x1C
 634     class #30; // #6     at 0x21
 635     Utf8 "int_v"; // #7     at 0x24
 636     Utf8 "I"; // #8     at 0x2C
 637     Utf8 "getInt"; // #9     at 0x30
 638     Utf8 "(I)I"; // #10     at 0x39
 639     Utf8 "Code"; // #11     at 0x40
 640     Utf8 "LineNumberTable"; // #12     at 0x47
 641     Utf8 "hashCode"; // #13     at 0x59
 642     Utf8 "()I"; // #14     at 0x64
 643     Utf8 "equals"; // #15     at 0x6A
 644     Utf8 "(Ljava/lang/Object;)Z"; // #16     at 0x73
 645     Utf8 "toString"; // #17     at 0x8B
 646     Utf8 "()Ljava/lang/String;"; // #18     at 0x96
 647     Utf8 "<init>"; // #19     at 0xAD
 648     Utf8 "()QValueMethodSynch;"; // #20     at 0xB6
 649     Utf8 "SourceFile"; // #21     at 0xCD
 650     Utf8 "ValueMethodSynch.java"; // #22     at 0xDA
 651     Utf8 "ValueMethodSynch"; // #23     at 0xF2
 652     NameAndType #7 #8; // #24     at 0x0105
 653     Utf8 "BootstrapMethods"; // #25     at 0x010A
 654     MethodHandle 6b #31; // #26     at 0x011D
 655     NameAndType #13 #32; // #27     at 0x0121
 656     NameAndType #15 #33; // #28     at 0x0126
 657     NameAndType #17 #34; // #29     at 0x012B
 658     Utf8 "java/lang/Object"; // #30     at 0x0130
 659     Method #35 #36; // #31     at 0x0143
 660     Utf8 "(QValueMethodSynch;)I"; // #32     at 0x0148
 661     Utf8 "(QValueMethodSynch;Ljava/lang/Object;)Z"; // #33     at 0x0160
 662     Utf8 "(QValueMethodSynch;)Ljava/lang/String;"; // #34     at 0x018A
 663     class #37; // #35     at 0x01B3
 664     NameAndType #38 #42; // #36     at 0x01B6
 665     Utf8 "java/lang/invoke/ValueBootstrapMethods"; // #37     at 0x01BB
 666     Utf8 "makeBootstrapMethod"; // #38     at 0x01E4
 667     class #44; // #39     at 0x01FA
 668     Utf8 "Lookup"; // #40     at 0x01FD
 669     Utf8 "InnerClasses"; // #41     at 0x0206
 670     Utf8 "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;"; // #42     at 0x0215
 671     class #45; // #43     at 0x028B
 672     Utf8 "java/lang/invoke/MethodHandles$Lookup"; // #44     at 0x028E
 673     Utf8 "java/lang/invoke/MethodHandles"; // #45     at 0x02B6
 674   } // Constant Pool
 675 
 676   0x0850; // access [ ACC_VALUE ACC_PRIMITIVE ACC_FINAL ]
 677   #1;// this_cpx
 678   #6;// super_cpx
 679 
 680   [0] { // Interfaces
 681   } // Interfaces
 682 
 683   [1] { // fields
 684     { // Member at 0x02E1
 685       0x0010; // access
 686       #7; // name_cpx
 687       #8; // sig_cpx
 688       [0] { // Attributes
 689       } // Attributes
 690     } // Member
 691   } // fields
 692 
 693   [5] { // methods
 694     { // Member at 0x02EB
 695       0x0020; // access [ ACC_SYNCHRONIZED(bad) ]
 696       #9; // name_cpx
 697       #10; // sig_cpx
 698       [1] { // Attributes
 699         Attr(#11, 26) { // Code at 0x02F3
 700           1; // max_stack
 701           2; // max_locals
 702           Bytes[2]{
 703             0x1BAC;
 704           };
 705           [0] { // Traps
 706           } // end Traps
 707           [1] { // Attributes
 708             Attr(#12, 6) { // LineNumberTable at 0x0307
 709               [1] { // LineNumberTable
 710                 0  9; //  at 0x0313
 711               }
 712             } // end LineNumberTable
 713           } // Attributes
 714         } // end Code
 715       } // Attributes
 716     } // Member
 717     ;
 718     { // Member at 0x0313
 719       0x0011; // access
 720       #13; // name_cpx
 721       #14; // sig_cpx
 722       [1] { // Attributes
 723         Attr(#11, 31) { // Code at 0x031B
 724           1; // max_stack
 725           1; // max_locals
 726           Bytes[7]{
 727             0x2ABA00030000AC;
 728           };
 729           [0] { // Traps
 730           } // end Traps
 731           [1] { // Attributes
 732             Attr(#12, 6) { // LineNumberTable at 0x0334
 733               [1] { // LineNumberTable
 734                 0  1; //  at 0x0340
 735               }
 736             } // end LineNumberTable
 737           } // Attributes
 738         } // end Code
 739       } // Attributes
 740     } // Member
 741     ;
 742     { // Member at 0x0340
 743       0x0011; // access
 744       #15; // name_cpx
 745       #16; // sig_cpx
 746       [1] { // Attributes
 747         Attr(#11, 32) { // Code at 0x0348
 748           2; // max_stack
 749           2; // max_locals
 750           Bytes[8]{
 751             0x2A2BBA00040000AC;
 752           };
 753           [0] { // Traps
 754           } // end Traps
 755           [1] { // Attributes
 756             Attr(#12, 6) { // LineNumberTable at 0x0362
 757               [1] { // LineNumberTable
 758                 0  1; //  at 0x036E
 759               }
 760             } // end LineNumberTable
 761           } // Attributes
 762         } // end Code
 763       } // Attributes
 764     } // Member
 765     ;
 766     { // Member at 0x036E
 767       0x0011; // access
 768       #17; // name_cpx
 769       #18; // sig_cpx
 770       [1] { // Attributes
 771         Attr(#11, 31) { // Code at 0x0376
 772           1; // max_stack
 773           1; // max_locals
 774           Bytes[7]{
 775             0x2ABA00050000B0;
 776           };
 777           [0] { // Traps
 778           } // end Traps
 779           [1] { // Attributes
 780             Attr(#12, 6) { // LineNumberTable at 0x038F
 781               [1] { // LineNumberTable
 782                 0  1; //  at 0x039B
 783               }
 784             } // end LineNumberTable
 785           } // Attributes
 786         } // end Code
 787       } // Attributes
 788     } // Member
 789     ;
 790     { // Member at 0x039B
 791       0x0008; // access
 792       #19; // name_cpx
 793       #20; // sig_cpx
 794       [1] { // Attributes
 795         Attr(#11, 45) { // Code at 0x03A3
 796           2; // max_stack
 797           1; // max_locals
 798           Bytes[13]{
 799             0xCB00014B042A5FCC;
 800             0x00024B2AB0;
 801           };
 802           [0] { // Traps
 803           } // end Traps
 804           [1] { // Attributes
 805             Attr(#12, 14) { // LineNumberTable at 0x03C2
 806               [3] { // LineNumberTable
 807                 0  4; //  at 0x03CE
 808                 4  5; //  at 0x03D2
 809                 11  6; //  at 0x03D6
 810               }
 811             } // end LineNumberTable
 812           } // Attributes
 813         } // end Code
 814       } // Attributes
 815     } // Member
 816   } // methods
 817 
 818   [3] { // Attributes
 819     Attr(#21, 2) { // SourceFile at 0x03D8
 820       #22;
 821     } // end SourceFile
 822     ;
 823     Attr(#41, 10) { // InnerClasses at 0x03E0
 824       [1] { // InnerClasses
 825         #39 #43 #40 25; //  at 0x03F0
 826       }
 827     } // end InnerClasses
 828     ;
 829     Attr(#25, 6) { // BootstrapMethods at 0x03F0
 830       [1] { // bootstrap_methods
 831         {  //  bootstrap_method
 832           #26; // bootstrap_method_ref
 833           [0] { // bootstrap_arguments
 834           }  //  bootstrap_arguments
 835         }  //  bootstrap_method
 836       }
 837     } // end BootstrapMethods
 838   } // Attributes
 839 } // end class ValueMethodSynch
 840 
 841 //////////////////////////////////////////////////////////////////////
 842 
 843 // Inline types Circ and Circ2 have fields of each other's type.  This should
 844 // cause a ClassCircularityError exception when one of them is being loaded.
 845 //
 846 // The inline types are based on these two Java classes:
 847 //
 848 // final inline class Circ {
 849 //     static final Circ VT = makeCirc(0x01234567);
 850 //     final int int_v;
 851 //     final Circ2 v2;
 852 //     Circ() {
 853 //         int_v = 1;
 854 //         v2 = Circ2.default;
 855 //     }
 856 //     static Circ makeCirc(int x) {
 857 //         Circ v = Circ.default;
 858 //         v = __WithField(v.int_v, x);
 859 //         return v;
 860 //     }
 861 // }
 862 //----------------------------------------------------------------
 863 // final inline class Circ2 {
 864 //     static final Circ2 VT = makeCirc2('\u0123');
 865 //     final char char_v;
 866 //     final Circ vv;
 867 //     Circ2() {
 868 //         char_v = 'z';
 869 //         vv = Circ.default;
 870 //     }
 871 //     static Circ2 makeCirc2(char c) {
 872 //         Circ2 v = Circ2.default;
 873 //         v = __WithField(v.char_v, c);
 874 //         return v;
 875 //     }
 876 // }
 877 
 878 class Circ {
 879   0xCAFEBABE;
 880   0; // minor version
 881   66; // version
 882   [61] { // Constant Pool
 883     ; // first element is empty
 884     class #34; // #1     at 0x0A
 885     Field #1 #35; // #2     at 0x0D
 886     class #36; // #3     at 0x12
 887     Field #1 #37; // #4     at 0x15
 888     InvokeDynamic 0s #40; // #5     at 0x1A
 889     InvokeDynamic 0s #41; // #6     at 0x1F
 890     InvokeDynamic 0s #42; // #7     at 0x24
 891     int 0x01234567; // #8     at 0x29
 892     Method #1 #43; // #9     at 0x2E
 893     Field #1 #44; // #10     at 0x33
 894     class #45; // #11     at 0x38
 895     Utf8 "VT"; // #12     at 0x3B
 896     Utf8 "QCirc;"; // #13     at 0x40
 897     Utf8 "int_v"; // #14     at 0x49
 898     Utf8 "I"; // #15     at 0x51
 899     Utf8 "v2"; // #16     at 0x55
 900     Utf8 "QCirc2;"; // #17     at 0x5A
 901     Utf8 "makeCirc"; // #18     at 0x65
 902     Utf8 "(I)QCirc;"; // #19     at 0x6F
 903     Utf8 "Code"; // #20     at 0x7B
 904     Utf8 "LineNumberTable"; // #21     at 0x82
 905     Utf8 "hashCode"; // #22     at 0x94
 906     Utf8 "()I"; // #23     at 0x9F
 907     Utf8 "equals"; // #24     at 0xA5
 908     Utf8 "(Ljava/lang/Object;)Z"; // #25     at 0xAE
 909     Utf8 "toString"; // #26     at 0xC6
 910     Utf8 "()Ljava/lang/String;"; // #27     at 0xD1
 911     Utf8 "<clinit>"; // #28     at 0xE8
 912     Utf8 "()V"; // #29     at 0xF3
 913     Utf8 "<vnew>"; // #30     at 0xF9
 914     Utf8 "()QCirc;"; // #31     at 0x0102
 915     Utf8 "SourceFile"; // #32     at 0x010D
 916     Utf8 "Circ.java"; // #33     at 0x011A
 917     Utf8 "Circ"; // #34     at 0x0126
 918     NameAndType #14 #15; // #35     at 0x012D
 919     Utf8 "Circ2"; // #36     at 0x0132
 920     NameAndType #16 #17; // #37     at 0x013A
 921     Utf8 "BootstrapMethods"; // #38     at 0x013F
 922     MethodHandle 6b #46; // #39     at 0x0152
 923     NameAndType #22 #47; // #40     at 0x0156
 924     NameAndType #24 #48; // #41     at 0x015B
 925     NameAndType #26 #49; // #42     at 0x0160
 926     NameAndType #18 #19; // #43     at 0x0165
 927     NameAndType #12 #13; // #44     at 0x016A
 928     Utf8 "java/lang/Object"; // #45     at 0x016F
 929     Method #50 #51; // #46     at 0x0182
 930     Utf8 "(QCirc;)I"; // #47     at 0x0187
 931     Utf8 "(QCirc;Ljava/lang/Object;)Z"; // #48     at 0x0193
 932     Utf8 "(QCirc;)Ljava/lang/String;"; // #49     at 0x01B1
 933     class #52; // #50     at 0x01CE
 934     NameAndType #53 #57; // #51     at 0x01D1
 935     Utf8 "java/lang/invoke/ValueBootstrapMethods"; // #52     at 0x01D6
 936     Utf8 "makeBootstrapMethod"; // #53     at 0x01FF
 937     class #59; // #54     at 0x0215
 938     Utf8 "Lookup"; // #55     at 0x0218
 939     Utf8 "InnerClasses"; // #56     at 0x0221
 940     Utf8 "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;"; // #57     at 0x0230
 941     class #60; // #58     at 0x02A6
 942     Utf8 "java/lang/invoke/MethodHandles$Lookup"; // #59     at 0x02A9
 943     Utf8 "java/lang/invoke/MethodHandles"; // #60     at 0x02D1
 944   } // Constant Pool
 945 
 946   0x0850; // access [ ACC_VALUE ACC_PRIMITIVE ACC_FINAL ]
 947   #1;// this_cpx
 948   #11;// super_cpx
 949 
 950   [0] { // Interfaces
 951   } // Interfaces
 952 
 953   [3] { // fields
 954     { // Member at 0x02FC
 955       0x0018; // access
 956       #12; // name_cpx
 957       #13; // sig_cpx
 958       [0] { // Attributes
 959       } // Attributes
 960     } // Member
 961     ;
 962     { // Member at 0x0304
 963       0x0010; // access
 964       #14; // name_cpx
 965       #15; // sig_cpx
 966       [0] { // Attributes
 967       } // Attributes
 968     } // Member
 969     ;
 970     { // Member at 0x030C
 971       0x0010; // access
 972       #16; // name_cpx
 973       #17; // sig_cpx
 974       [0] { // Attributes
 975       } // Attributes
 976     } // Member
 977   } // fields
 978 
 979   [6] { // methods
 980     { // Member at 0x0316
 981       0x0008; // access
 982       #18; // name_cpx
 983       #19; // sig_cpx
 984       [1] { // Attributes
 985         Attr(#20, 45) { // Code at 0x031E
 986           2; // max_stack
 987           2; // max_locals
 988           Bytes[13]{
 989             0xCB00014C1A2B5FCC;
 990             0x00024C2BB0;
 991           };
 992           [0] { // Traps
 993           } // end Traps
 994           [1] { // Attributes
 995             Attr(#21, 14) { // LineNumberTable at 0x033D
 996               [3] { // LineNumberTable
 997                 0  12; //  at 0x0349
 998                 4  13; //  at 0x034D
 999                 11  14; //  at 0x0351
1000               }
1001             } // end LineNumberTable
1002           } // Attributes
1003         } // end Code
1004       } // Attributes
1005     } // Member
1006     ;
1007     { // Member at 0x0351
1008       0x0011; // access
1009       #22; // name_cpx
1010       #23; // sig_cpx
1011       [1] { // Attributes
1012         Attr(#20, 31) { // Code at 0x0359
1013           1; // max_stack
1014           1; // max_locals
1015           Bytes[7]{
1016             0x2ABA00050000AC;
1017           };
1018           [0] { // Traps
1019           } // end Traps
1020           [1] { // Attributes
1021             Attr(#21, 6) { // LineNumberTable at 0x0372
1022               [1] { // LineNumberTable
1023                 0  1; //  at 0x037E
1024               }
1025             } // end LineNumberTable
1026           } // Attributes
1027         } // end Code
1028       } // Attributes
1029     } // Member
1030     ;
1031     { // Member at 0x037E
1032       0x0011; // access
1033       #24; // name_cpx
1034       #25; // sig_cpx
1035       [1] { // Attributes
1036         Attr(#20, 32) { // Code at 0x0386
1037           2; // max_stack
1038           2; // max_locals
1039           Bytes[8]{
1040             0x2A2BBA00060000AC;
1041           };
1042           [0] { // Traps
1043           } // end Traps
1044           [1] { // Attributes
1045             Attr(#21, 6) { // LineNumberTable at 0x03A0
1046               [1] { // LineNumberTable
1047                 0  1; //  at 0x03AC
1048               }
1049             } // end LineNumberTable
1050           } // Attributes
1051         } // end Code
1052       } // Attributes
1053     } // Member
1054     ;
1055     { // Member at 0x03AC
1056       0x0011; // access
1057       #26; // name_cpx
1058       #27; // sig_cpx
1059       [1] { // Attributes
1060         Attr(#20, 31) { // Code at 0x03B4
1061           1; // max_stack
1062           1; // max_locals
1063           Bytes[7]{
1064             0x2ABA00070000B0;
1065           };
1066           [0] { // Traps
1067           } // end Traps
1068           [1] { // Attributes
1069             Attr(#21, 6) { // LineNumberTable at 0x03CD
1070               [1] { // LineNumberTable
1071                 0  1; //  at 0x03D9
1072               }
1073             } // end LineNumberTable
1074           } // Attributes
1075         } // end Code
1076       } // Attributes
1077     } // Member
1078     ;
1079     { // Member at 0x03D9
1080       0x0008; // access
1081       #28; // name_cpx
1082       #29; // sig_cpx
1083       [1] { // Attributes
1084         Attr(#20, 33) { // Code at 0x03E1
1085           1; // max_stack
1086           0; // max_locals
1087           Bytes[9]{
1088             0x1208B80009B3000A;
1089             0xB1;
1090           };
1091           [0] { // Traps
1092           } // end Traps
1093           [1] { // Attributes
1094             Attr(#21, 6) { // LineNumberTable at 0x03FC
1095               [1] { // LineNumberTable
1096                 0  2; //  at 0x0408
1097               }
1098             } // end LineNumberTable
1099           } // Attributes
1100         } // end Code
1101       } // Attributes
1102     } // Member
1103     ;
1104     { // Member at 0x0408
1105       0x0008; // access
1106       #30; // name_cpx
1107       #31; // sig_cpx
1108       [1] { // Attributes
1109         Attr(#20, 58) { // Code at 0x0410
1110           2; // max_stack
1111           1; // max_locals
1112           Bytes[22]{
1113             0xCB00014B042A5FCC;
1114             0x00024BCB00032A5F;
1115             0xCC00044B2AB0;
1116           };
1117           [0] { // Traps
1118           } // end Traps
1119           [1] { // Attributes
1120             Attr(#21, 18) { // LineNumberTable at 0x0438
1121               [4] { // LineNumberTable
1122                 0  6; //  at 0x0444
1123                 4  7; //  at 0x0448
1124                 11  8; //  at 0x044C
1125                 20  9; //  at 0x0450
1126               }
1127             } // end LineNumberTable
1128           } // Attributes
1129         } // end Code
1130       } // Attributes
1131     } // Member
1132   } // methods
1133 
1134   [3] { // Attributes
1135     Attr(#32, 2) { // SourceFile at 0x0452
1136       #33;
1137     } // end SourceFile
1138     ;
1139     Attr(#56, 10) { // InnerClasses at 0x045A
1140       [1] { // InnerClasses
1141         #54 #58 #55 25; //  at 0x046A
1142       }
1143     } // end InnerClasses
1144     ;
1145     Attr(#38, 6) { // BootstrapMethods at 0x046A
1146       [1] { // bootstrap_methods
1147         {  //  bootstrap_method
1148           #39; // bootstrap_method_ref
1149           [0] { // bootstrap_arguments
1150           }  //  bootstrap_arguments
1151         }  //  bootstrap_method
1152       }
1153     } // end BootstrapMethods
1154   } // Attributes
1155 } // end class Circ
1156 
1157 class Circ2 {
1158   0xCAFEBABE;
1159   0; // minor version
1160   66; // version
1161   [60] { // Constant Pool
1162     ; // first element is empty
1163     class #33; // #1     at 0x0A
1164     Field #1 #34; // #2     at 0x0D
1165     class #35; // #3     at 0x12
1166     Field #1 #36; // #4     at 0x15
1167     InvokeDynamic 0s #39; // #5     at 0x1A
1168     InvokeDynamic 0s #40; // #6     at 0x1F
1169     InvokeDynamic 0s #41; // #7     at 0x24
1170     Method #1 #42; // #8     at 0x29
1171     Field #1 #43; // #9     at 0x2E
1172     class #44; // #10     at 0x33
1173     Utf8 "VT"; // #11     at 0x36
1174     Utf8 "QCirc2;"; // #12     at 0x3B
1175     Utf8 "char_v"; // #13     at 0x45
1176     Utf8 "C"; // #14     at 0x4E
1177     Utf8 "vv"; // #15     at 0x52
1178     Utf8 "QCirc;"; // #16     at 0x57
1179     Utf8 "makeCirc2"; // #17     at 0x60
1180     Utf8 "(C)QCirc2;"; // #18     at 0x6C
1181     Utf8 "Code"; // #19     at 0x79
1182     Utf8 "LineNumberTable"; // #20     at 0x80
1183     Utf8 "hashCode"; // #21     at 0x92
1184     Utf8 "()I"; // #22     at 0x9D
1185     Utf8 "equals"; // #23     at 0xA3
1186     Utf8 "(Ljava/lang/Object;)Z"; // #24     at 0xAC
1187     Utf8 "toString"; // #25     at 0xC4
1188     Utf8 "()Ljava/lang/String;"; // #26     at 0xCF
1189     Utf8 "<clinit>"; // #27     at 0xE6
1190     Utf8 "()V"; // #28     at 0xF1
1191     Utf8 "<vnew>"; // #29     at 0xF7
1192     Utf8 "()QCirc2;"; // #30     at 0x0100
1193     Utf8 "SourceFile"; // #31     at 0x010C
1194     Utf8 "Circ2.java"; // #32     at 0x0119
1195     Utf8 "Circ2"; // #33     at 0x0126
1196     NameAndType #13 #14; // #34     at 0x012E
1197     Utf8 "Circ"; // #35     at 0x0133
1198     NameAndType #15 #16; // #36     at 0x013A
1199     Utf8 "BootstrapMethods"; // #37     at 0x013F
1200     MethodHandle 6b #45; // #38     at 0x0152
1201     NameAndType #21 #46; // #39     at 0x0156
1202     NameAndType #23 #47; // #40     at 0x015B
1203     NameAndType #25 #48; // #41     at 0x0160
1204     NameAndType #17 #18; // #42     at 0x0165
1205     NameAndType #11 #12; // #43     at 0x016A
1206     Utf8 "java/lang/Object"; // #44     at 0x016F
1207     Method #49 #50; // #45     at 0x0182
1208     Utf8 "(QCirc2;)I"; // #46     at 0x0187
1209     Utf8 "(QCirc2;Ljava/lang/Object;)Z"; // #47     at 0x0194
1210     Utf8 "(QCirc2;)Ljava/lang/String;"; // #48     at 0x01B3
1211     class #51; // #49     at 0x01D1
1212     NameAndType #52 #56; // #50     at 0x01D4
1213     Utf8 "java/lang/invoke/ValueBootstrapMethods"; // #51     at 0x01D9
1214     Utf8 "makeBootstrapMethod"; // #52     at 0x0202
1215     class #58; // #53     at 0x0218
1216     Utf8 "Lookup"; // #54     at 0x021B
1217     Utf8 "InnerClasses"; // #55     at 0x0224
1218     Utf8 "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;"; // #56     at 0x0233
1219     class #59; // #57     at 0x02A9
1220     Utf8 "java/lang/invoke/MethodHandles$Lookup"; // #58     at 0x02AC
1221     Utf8 "java/lang/invoke/MethodHandles"; // #59     at 0x02D4
1222   } // Constant Pool
1223 
1224   0x0850; // access [ ACC_VALUE ACC_PRIMITIVE ACC_FINAL ]
1225   #1;// this_cpx
1226   #10;// super_cpx
1227 
1228   [0] { // Interfaces
1229   } // Interfaces
1230 
1231   [3] { // fields
1232     { // Member at 0x02FF
1233       0x0018; // access
1234       #11; // name_cpx
1235       #12; // sig_cpx
1236       [0] { // Attributes
1237       } // Attributes
1238     } // Member
1239     ;
1240     { // Member at 0x0307
1241       0x0010; // access
1242       #13; // name_cpx
1243       #14; // sig_cpx
1244       [0] { // Attributes
1245       } // Attributes
1246     } // Member
1247     ;
1248     { // Member at 0x030F
1249       0x0010; // access
1250       #15; // name_cpx
1251       #16; // sig_cpx
1252       [0] { // Attributes
1253       } // Attributes
1254     } // Member
1255   } // fields
1256 
1257   [6] { // methods
1258     { // Member at 0x0319
1259       0x0008; // access
1260       #17; // name_cpx
1261       #18; // sig_cpx
1262       [1] { // Attributes
1263         Attr(#19, 45) { // Code at 0x0321
1264           2; // max_stack
1265           2; // max_locals
1266           Bytes[13]{
1267             0xCB00014C1A2B5FCC;
1268             0x00024C2BB0;
1269           };
1270           [0] { // Traps
1271           } // end Traps
1272           [1] { // Attributes
1273             Attr(#20, 14) { // LineNumberTable at 0x0340
1274               [3] { // LineNumberTable
1275                 0  12; //  at 0x034C
1276                 4  13; //  at 0x0350
1277                 11  14; //  at 0x0354
1278               }
1279             } // end LineNumberTable
1280           } // Attributes
1281         } // end Code
1282       } // Attributes
1283     } // Member
1284     ;
1285     { // Member at 0x0354
1286       0x0011; // access
1287       #21; // name_cpx
1288       #22; // sig_cpx
1289       [1] { // Attributes
1290         Attr(#19, 31) { // Code at 0x035C
1291           1; // max_stack
1292           1; // max_locals
1293           Bytes[7]{
1294             0x2ABA00050000AC;
1295           };
1296           [0] { // Traps
1297           } // end Traps
1298           [1] { // Attributes
1299             Attr(#20, 6) { // LineNumberTable at 0x0375
1300               [1] { // LineNumberTable
1301                 0  1; //  at 0x0381
1302               }
1303             } // end LineNumberTable
1304           } // Attributes
1305         } // end Code
1306       } // Attributes
1307     } // Member
1308     ;
1309     { // Member at 0x0381
1310       0x0011; // access
1311       #23; // name_cpx
1312       #24; // sig_cpx
1313       [1] { // Attributes
1314         Attr(#19, 32) { // Code at 0x0389
1315           2; // max_stack
1316           2; // max_locals
1317           Bytes[8]{
1318             0x2A2BBA00060000AC;
1319           };
1320           [0] { // Traps
1321           } // end Traps
1322           [1] { // Attributes
1323             Attr(#20, 6) { // LineNumberTable at 0x03A3
1324               [1] { // LineNumberTable
1325                 0  1; //  at 0x03AF
1326               }
1327             } // end LineNumberTable
1328           } // Attributes
1329         } // end Code
1330       } // Attributes
1331     } // Member
1332     ;
1333     { // Member at 0x03AF
1334       0x0011; // access
1335       #25; // name_cpx
1336       #26; // sig_cpx
1337       [1] { // Attributes
1338         Attr(#19, 31) { // Code at 0x03B7
1339           1; // max_stack
1340           1; // max_locals
1341           Bytes[7]{
1342             0x2ABA00070000B0;
1343           };
1344           [0] { // Traps
1345           } // end Traps
1346           [1] { // Attributes
1347             Attr(#20, 6) { // LineNumberTable at 0x03D0
1348               [1] { // LineNumberTable
1349                 0  1; //  at 0x03DC
1350               }
1351             } // end LineNumberTable
1352           } // Attributes
1353         } // end Code
1354       } // Attributes
1355     } // Member
1356     ;
1357     { // Member at 0x03DC
1358       0x0008; // access
1359       #27; // name_cpx
1360       #28; // sig_cpx
1361       [1] { // Attributes
1362         Attr(#19, 34) { // Code at 0x03E4
1363           1; // max_stack
1364           0; // max_locals
1365           Bytes[10]{
1366             0x110123B80008B300;
1367             0x09B1;
1368           };
1369           [0] { // Traps
1370           } // end Traps
1371           [1] { // Attributes
1372             Attr(#20, 6) { // LineNumberTable at 0x0400
1373               [1] { // LineNumberTable
1374                 0  2; //  at 0x040C
1375               }
1376             } // end LineNumberTable
1377           } // Attributes
1378         } // end Code
1379       } // Attributes
1380     } // Member
1381     ;
1382     { // Member at 0x040C
1383       0x0008; // access
1384       #29; // name_cpx
1385       #30; // sig_cpx
1386       [1] { // Attributes
1387         Attr(#19, 59) { // Code at 0x0414
1388           2; // max_stack
1389           1; // max_locals
1390           Bytes[23]{
1391             0xCB00014B107A2A5F;
1392             0xCC00024BCB00032A;
1393             0x5FCC00044B2AB0;
1394           };
1395           [0] { // Traps
1396           } // end Traps
1397           [1] { // Attributes
1398             Attr(#20, 18) { // LineNumberTable at 0x043D
1399               [4] { // LineNumberTable
1400                 0  6; //  at 0x0449
1401                 4  7; //  at 0x044D
1402                 12  8; //  at 0x0451
1403                 21  9; //  at 0x0455
1404               }
1405             } // end LineNumberTable
1406           } // Attributes
1407         } // end Code
1408       } // Attributes
1409     } // Member
1410   } // methods
1411 
1412   [3] { // Attributes
1413     Attr(#31, 2) { // SourceFile at 0x0457
1414       #32;
1415     } // end SourceFile
1416     ;
1417     Attr(#55, 10) { // InnerClasses at 0x045F
1418       [1] { // InnerClasses
1419         #53 #57 #54 25; //  at 0x046F
1420       }
1421     } // end InnerClasses
1422     ;
1423     Attr(#37, 6) { // BootstrapMethods at 0x046F
1424       [1] { // bootstrap_methods
1425         {  //  bootstrap_method
1426           #38; // bootstrap_method_ref
1427           [0] { // bootstrap_arguments
1428           }  //  bootstrap_arguments
1429         }  //  bootstrap_method
1430       }
1431     } // end BootstrapMethods
1432   } // Attributes
1433 } // end class Circ2
1434 
1435 //////////////////////////////////////////////////////////////////////
1436 
1437 // Inline types CircStaticA and CircStaticB have static fields of each other's
1438 // type.  This should cause a ClassCircularityError exception when one of them
1439 // is being loaded.
1440 //
1441 // The inline types are based on these two Java classes:
1442 //
1443 // final inline class CircStaticA {
1444 //     static final CircStaticA VT = makeCircStaticA(0x01234567);
1445 //     final int int_v;
1446 //     static final CircStaticB v2 = CircStaticB.default;
1447 //     CircStaticA() {
1448 //         int_v = 1;
1449 //     }
1450 //     static CircStaticA makeCircStaticA(int x) {
1451 //         CircStaticA v = CircStaticA.default;
1452 //         v = __WithField(v.int_v, x);
1453 //         return v;
1454 //     }
1455 // }
1456 //----------------------------------------------------------------
1457 // final inline class CircStaticB {
1458 //     static final CircStaticB VT = makeCircStaticB(0x01234567);
1459 //     final int int_v;
1460 //     static final CircStaticA v2 = CircStaticA.default;
1461 //     CircStaticB() {
1462 //         int_v = 1;
1463 //     }
1464 //     static CircStaticB makeCircStaticB(int x) {
1465 //         CircStaticB v = CircStaticB.default;
1466 //         v = __WithField(v.int_v, x);
1467 //         return v;
1468 //     }
1469 // }
1470 
1471 class CircStaticA {
1472   0xCAFEBABE;
1473   0; // minor version
1474   66; // version
1475   [61] { // Constant Pool
1476     ; // first element is empty
1477     class #34; // #1     at 0x0A
1478     Field #1 #35; // #2     at 0x0D
1479     InvokeDynamic 0s #38; // #3     at 0x12
1480     InvokeDynamic 0s #39; // #4     at 0x17
1481     InvokeDynamic 0s #40; // #5     at 0x1C
1482     int 0x01234567; // #6     at 0x21
1483     Method #1 #41; // #7     at 0x26
1484     Field #1 #42; // #8     at 0x2B
1485     class #43; // #9     at 0x30
1486     Field #1 #44; // #10     at 0x33
1487     class #45; // #11     at 0x38
1488     Utf8 "VT"; // #12     at 0x3B
1489     Utf8 "QCircStaticA;"; // #13     at 0x40
1490     Utf8 "int_v"; // #14     at 0x50
1491     Utf8 "I"; // #15     at 0x58
1492     Utf8 "v2"; // #16     at 0x5C
1493     Utf8 "QCircStaticB;"; // #17     at 0x61
1494     Utf8 "makeCircStaticA"; // #18     at 0x71
1495     Utf8 "(I)QCircStaticA;"; // #19     at 0x83
1496     Utf8 "Code"; // #20     at 0x96
1497     Utf8 "LineNumberTable"; // #21     at 0x9D
1498     Utf8 "hashCode"; // #22     at 0xAF
1499     Utf8 "()I"; // #23     at 0xBA
1500     Utf8 "equals"; // #24     at 0xC0
1501     Utf8 "(Ljava/lang/Object;)Z"; // #25     at 0xC9
1502     Utf8 "toString"; // #26     at 0xE1
1503     Utf8 "()Ljava/lang/String;"; // #27     at 0xEC
1504     Utf8 "<clinit>"; // #28     at 0x0103
1505     Utf8 "()V"; // #29     at 0x010E
1506     Utf8 "<vnew>"; // #30     at 0x0114
1507     Utf8 "()QCircStaticA;"; // #31     at 0x011D
1508     Utf8 "SourceFile"; // #32     at 0x012F
1509     Utf8 "CircStaticA.java"; // #33     at 0x013C
1510     Utf8 "CircStaticA"; // #34     at 0x014F
1511     NameAndType #14 #15; // #35     at 0x015D
1512     Utf8 "BootstrapMethods"; // #36     at 0x0162
1513     MethodHandle 6b #46; // #37     at 0x0175
1514     NameAndType #22 #47; // #38     at 0x0179
1515     NameAndType #24 #48; // #39     at 0x017E
1516     NameAndType #26 #49; // #40     at 0x0183
1517     NameAndType #18 #19; // #41     at 0x0188
1518     NameAndType #12 #13; // #42     at 0x018D
1519     Utf8 "CircStaticB"; // #43     at 0x0192
1520     NameAndType #16 #17; // #44     at 0x01A0
1521     Utf8 "java/lang/Object"; // #45     at 0x01A5
1522     Method #50 #51; // #46     at 0x01B8
1523     Utf8 "(QCircStaticA;)I"; // #47     at 0x01BD
1524     Utf8 "(QCircStaticA;Ljava/lang/Object;)Z"; // #48     at 0x01D0
1525     Utf8 "(QCircStaticA;)Ljava/lang/String;"; // #49     at 0x01F5
1526     class #52; // #50     at 0x0219
1527     NameAndType #53 #57; // #51     at 0x021C
1528     Utf8 "java/lang/invoke/ValueBootstrapMethods"; // #52     at 0x0221
1529     Utf8 "makeBootstrapMethod"; // #53     at 0x024A
1530     class #59; // #54     at 0x0260
1531     Utf8 "Lookup"; // #55     at 0x0263
1532     Utf8 "InnerClasses"; // #56     at 0x026C
1533     Utf8 "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;"; // #57     at 0x027B
1534     class #60; // #58     at 0x02F1
1535     Utf8 "java/lang/invoke/MethodHandles$Lookup"; // #59     at 0x02F4
1536     Utf8 "java/lang/invoke/MethodHandles"; // #60     at 0x031C
1537   } // Constant Pool
1538 
1539   0x0850; // access [ ACC_VALUE ACC_PRIMITIVE ACC_FINAL ]
1540   #1;// this_cpx
1541   #11;// super_cpx
1542 
1543   [0] { // Interfaces
1544   } // Interfaces
1545 
1546   [3] { // fields
1547     { // Member at 0x0347
1548       0x0018; // access
1549       #12; // name_cpx
1550       #13; // sig_cpx
1551       [0] { // Attributes
1552       } // Attributes
1553     } // Member
1554     ;
1555     { // Member at 0x034F
1556       0x0010; // access
1557       #14; // name_cpx
1558       #15; // sig_cpx
1559       [0] { // Attributes
1560       } // Attributes
1561     } // Member
1562     ;
1563     { // Member at 0x0357
1564       0x0018; // access
1565       #16; // name_cpx
1566       #17; // sig_cpx
1567       [0] { // Attributes
1568       } // Attributes
1569     } // Member
1570   } // fields
1571 
1572   [6] { // methods
1573     { // Member at 0x0361
1574       0x0008; // access
1575       #18; // name_cpx
1576       #19; // sig_cpx
1577       [1] { // Attributes
1578         Attr(#20, 45) { // Code at 0x0369
1579           2; // max_stack
1580           2; // max_locals
1581           Bytes[13]{
1582             0xCB00014C1A2B5FCC;
1583             0x00024C2BB0;
1584           };
1585           [0] { // Traps
1586           } // end Traps
1587           [1] { // Attributes
1588             Attr(#21, 14) { // LineNumberTable at 0x0388
1589               [3] { // LineNumberTable
1590                 0  11; //  at 0x0394
1591                 4  12; //  at 0x0398
1592                 11  13; //  at 0x039C
1593               }
1594             } // end LineNumberTable
1595           } // Attributes
1596         } // end Code
1597       } // Attributes
1598     } // Member
1599     ;
1600     { // Member at 0x039C
1601       0x0011; // access
1602       #22; // name_cpx
1603       #23; // sig_cpx
1604       [1] { // Attributes
1605         Attr(#20, 31) { // Code at 0x03A4
1606           1; // max_stack
1607           1; // max_locals
1608           Bytes[7]{
1609             0x2ABA00030000AC;
1610           };
1611           [0] { // Traps
1612           } // end Traps
1613           [1] { // Attributes
1614             Attr(#21, 6) { // LineNumberTable at 0x03BD
1615               [1] { // LineNumberTable
1616                 0  1; //  at 0x03C9
1617               }
1618             } // end LineNumberTable
1619           } // Attributes
1620         } // end Code
1621       } // Attributes
1622     } // Member
1623     ;
1624     { // Member at 0x03C9
1625       0x0011; // access
1626       #24; // name_cpx
1627       #25; // sig_cpx
1628       [1] { // Attributes
1629         Attr(#20, 32) { // Code at 0x03D1
1630           2; // max_stack
1631           2; // max_locals
1632           Bytes[8]{
1633             0x2A2BBA00040000AC;
1634           };
1635           [0] { // Traps
1636           } // end Traps
1637           [1] { // Attributes
1638             Attr(#21, 6) { // LineNumberTable at 0x03EB
1639               [1] { // LineNumberTable
1640                 0  1; //  at 0x03F7
1641               }
1642             } // end LineNumberTable
1643           } // Attributes
1644         } // end Code
1645       } // Attributes
1646     } // Member
1647     ;
1648     { // Member at 0x03F7
1649       0x0011; // access
1650       #26; // name_cpx
1651       #27; // sig_cpx
1652       [1] { // Attributes
1653         Attr(#20, 31) { // Code at 0x03FF
1654           1; // max_stack
1655           1; // max_locals
1656           Bytes[7]{
1657             0x2ABA00050000B0;
1658           };
1659           [0] { // Traps
1660           } // end Traps
1661           [1] { // Attributes
1662             Attr(#21, 6) { // LineNumberTable at 0x0418
1663               [1] { // LineNumberTable
1664                 0  1; //  at 0x0424
1665               }
1666             } // end LineNumberTable
1667           } // Attributes
1668         } // end Code
1669       } // Attributes
1670     } // Member
1671     ;
1672     { // Member at 0x0424
1673       0x0008; // access
1674       #28; // name_cpx
1675       #29; // sig_cpx
1676       [1] { // Attributes
1677         Attr(#20, 43) { // Code at 0x042C
1678           1; // max_stack
1679           0; // max_locals
1680           Bytes[15]{
1681             0x1206B80007B30008;
1682             0xCB0009B3000AB1;
1683           };
1684           [0] { // Traps
1685           } // end Traps
1686           [1] { // Attributes
1687             Attr(#21, 10) { // LineNumberTable at 0x044D
1688               [2] { // LineNumberTable
1689                 0  2; //  at 0x0459
1690                 8  4; //  at 0x045D
1691               }
1692             } // end LineNumberTable
1693           } // Attributes
1694         } // end Code
1695       } // Attributes
1696     } // Member
1697     ;
1698     { // Member at 0x045D
1699       0x0008; // access
1700       #30; // name_cpx
1701       #31; // sig_cpx
1702       [1] { // Attributes
1703         Attr(#20, 45) { // Code at 0x0465
1704           2; // max_stack
1705           1; // max_locals
1706           Bytes[13]{
1707             0xCB00014B042A5FCC;
1708             0x00024B2AB0;
1709           };
1710           [0] { // Traps
1711           } // end Traps
1712           [1] { // Attributes
1713             Attr(#21, 14) { // LineNumberTable at 0x0484
1714               [3] { // LineNumberTable
1715                 0  6; //  at 0x0490
1716                 4  7; //  at 0x0494
1717                 11  8; //  at 0x0498
1718               }
1719             } // end LineNumberTable
1720           } // Attributes
1721         } // end Code
1722       } // Attributes
1723     } // Member
1724   } // methods
1725 
1726   [3] { // Attributes
1727     Attr(#32, 2) { // SourceFile at 0x049A
1728       #33;
1729     } // end SourceFile
1730     ;
1731     Attr(#56, 10) { // InnerClasses at 0x04A2
1732       [1] { // InnerClasses
1733         #54 #58 #55 25; //  at 0x04B2
1734       }
1735     } // end InnerClasses
1736     ;
1737     Attr(#36, 6) { // BootstrapMethods at 0x04B2
1738       [1] { // bootstrap_methods
1739         {  //  bootstrap_method
1740           #37; // bootstrap_method_ref
1741           [0] { // bootstrap_arguments
1742           }  //  bootstrap_arguments
1743         }  //  bootstrap_method
1744       }
1745     } // end BootstrapMethods
1746   } // Attributes
1747 } // end class CircStaticA
1748 
1749 class CircStaticB {
1750   0xCAFEBABE;
1751   0; // minor version
1752   66; // version
1753   [61] { // Constant Pool
1754     ; // first element is empty
1755     class #34; // #1     at 0x0A
1756     Field #1 #35; // #2     at 0x0D
1757     InvokeDynamic 0s #38; // #3     at 0x12
1758     InvokeDynamic 0s #39; // #4     at 0x17
1759     InvokeDynamic 0s #40; // #5     at 0x1C
1760     int 0x01234567; // #6     at 0x21
1761     Method #1 #41; // #7     at 0x26
1762     Field #1 #42; // #8     at 0x2B
1763     class #43; // #9     at 0x30
1764     Field #1 #44; // #10     at 0x33
1765     class #45; // #11     at 0x38
1766     Utf8 "VT"; // #12     at 0x3B
1767     Utf8 "QCircStaticB;"; // #13     at 0x40
1768     Utf8 "int_v"; // #14     at 0x50
1769     Utf8 "I"; // #15     at 0x58
1770     Utf8 "v2"; // #16     at 0x5C
1771     Utf8 "QCircStaticA;"; // #17     at 0x61
1772     Utf8 "makeCircStaticB"; // #18     at 0x71
1773     Utf8 "(I)QCircStaticB;"; // #19     at 0x83
1774     Utf8 "Code"; // #20     at 0x96
1775     Utf8 "LineNumberTable"; // #21     at 0x9D
1776     Utf8 "hashCode"; // #22     at 0xAF
1777     Utf8 "()I"; // #23     at 0xBA
1778     Utf8 "equals"; // #24     at 0xC0
1779     Utf8 "(Ljava/lang/Object;)Z"; // #25     at 0xC9
1780     Utf8 "toString"; // #26     at 0xE1
1781     Utf8 "()Ljava/lang/String;"; // #27     at 0xEC
1782     Utf8 "<clinit>"; // #28     at 0x0103
1783     Utf8 "()V"; // #29     at 0x010E
1784     Utf8 "<vnew>"; // #30     at 0x0114
1785     Utf8 "()QCircStaticB;"; // #31     at 0x011D
1786     Utf8 "SourceFile"; // #32     at 0x012F
1787     Utf8 "CircStaticB.java"; // #33     at 0x013C
1788     Utf8 "CircStaticB"; // #34     at 0x014F
1789     NameAndType #14 #15; // #35     at 0x015D
1790     Utf8 "BootstrapMethods"; // #36     at 0x0162
1791     MethodHandle 6b #46; // #37     at 0x0175
1792     NameAndType #22 #47; // #38     at 0x0179
1793     NameAndType #24 #48; // #39     at 0x017E
1794     NameAndType #26 #49; // #40     at 0x0183
1795     NameAndType #18 #19; // #41     at 0x0188
1796     NameAndType #12 #13; // #42     at 0x018D
1797     Utf8 "CircStaticA"; // #43     at 0x0192
1798     NameAndType #16 #17; // #44     at 0x01A0
1799     Utf8 "java/lang/Object"; // #45     at 0x01A5
1800     Method #50 #51; // #46     at 0x01B8
1801     Utf8 "(QCircStaticB;)I"; // #47     at 0x01BD
1802     Utf8 "(QCircStaticB;Ljava/lang/Object;)Z"; // #48     at 0x01D0
1803     Utf8 "(QCircStaticB;)Ljava/lang/String;"; // #49     at 0x01F5
1804     class #52; // #50     at 0x0219
1805     NameAndType #53 #57; // #51     at 0x021C
1806     Utf8 "java/lang/invoke/ValueBootstrapMethods"; // #52     at 0x0221
1807     Utf8 "makeBootstrapMethod"; // #53     at 0x024A
1808     class #59; // #54     at 0x0260
1809     Utf8 "Lookup"; // #55     at 0x0263
1810     Utf8 "InnerClasses"; // #56     at 0x026C
1811     Utf8 "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;"; // #57     at 0x027B
1812     class #60; // #58     at 0x02F1
1813     Utf8 "java/lang/invoke/MethodHandles$Lookup"; // #59     at 0x02F4
1814     Utf8 "java/lang/invoke/MethodHandles"; // #60     at 0x031C
1815   } // Constant Pool
1816 
1817   0x0850; // access [ ACC_VALUE ACC_PRIMITIVE ACC_FINAL ]
1818   #1;// this_cpx
1819   #11;// super_cpx
1820 
1821   [0] { // Interfaces
1822   } // Interfaces
1823 
1824   [3] { // fields
1825     { // Member at 0x0347
1826       0x0018; // access
1827       #12; // name_cpx
1828       #13; // sig_cpx
1829       [0] { // Attributes
1830       } // Attributes
1831     } // Member
1832     ;
1833     { // Member at 0x034F
1834       0x0010; // access
1835       #14; // name_cpx
1836       #15; // sig_cpx
1837       [0] { // Attributes
1838       } // Attributes
1839     } // Member
1840     ;
1841     { // Member at 0x0357
1842       0x0018; // access
1843       #16; // name_cpx
1844       #17; // sig_cpx
1845       [0] { // Attributes
1846       } // Attributes
1847     } // Member
1848   } // fields
1849 
1850   [6] { // methods
1851     { // Member at 0x0361
1852       0x0008; // access
1853       #18; // name_cpx
1854       #19; // sig_cpx
1855       [1] { // Attributes
1856         Attr(#20, 45) { // Code at 0x0369
1857           2; // max_stack
1858           2; // max_locals
1859           Bytes[13]{
1860             0xCB00014C1A2B5FCC;
1861             0x00024C2BB0;
1862           };
1863           [0] { // Traps
1864           } // end Traps
1865           [1] { // Attributes
1866             Attr(#21, 14) { // LineNumberTable at 0x0388
1867               [3] { // LineNumberTable
1868                 0  11; //  at 0x0394
1869                 4  12; //  at 0x0398
1870                 11  13; //  at 0x039C
1871               }
1872             } // end LineNumberTable
1873           } // Attributes
1874         } // end Code
1875       } // Attributes
1876     } // Member
1877     ;
1878     { // Member at 0x039C
1879       0x0011; // access
1880       #22; // name_cpx
1881       #23; // sig_cpx
1882       [1] { // Attributes
1883         Attr(#20, 31) { // Code at 0x03A4
1884           1; // max_stack
1885           1; // max_locals
1886           Bytes[7]{
1887             0x2ABA00030000AC;
1888           };
1889           [0] { // Traps
1890           } // end Traps
1891           [1] { // Attributes
1892             Attr(#21, 6) { // LineNumberTable at 0x03BD
1893               [1] { // LineNumberTable
1894                 0  1; //  at 0x03C9
1895               }
1896             } // end LineNumberTable
1897           } // Attributes
1898         } // end Code
1899       } // Attributes
1900     } // Member
1901     ;
1902     { // Member at 0x03C9
1903       0x0011; // access
1904       #24; // name_cpx
1905       #25; // sig_cpx
1906       [1] { // Attributes
1907         Attr(#20, 32) { // Code at 0x03D1
1908           2; // max_stack
1909           2; // max_locals
1910           Bytes[8]{
1911             0x2A2BBA00040000AC;
1912           };
1913           [0] { // Traps
1914           } // end Traps
1915           [1] { // Attributes
1916             Attr(#21, 6) { // LineNumberTable at 0x03EB
1917               [1] { // LineNumberTable
1918                 0  1; //  at 0x03F7
1919               }
1920             } // end LineNumberTable
1921           } // Attributes
1922         } // end Code
1923       } // Attributes
1924     } // Member
1925     ;
1926     { // Member at 0x03F7
1927       0x0011; // access
1928       #26; // name_cpx
1929       #27; // sig_cpx
1930       [1] { // Attributes
1931         Attr(#20, 31) { // Code at 0x03FF
1932           1; // max_stack
1933           1; // max_locals
1934           Bytes[7]{
1935             0x2ABA00050000B0;
1936           };
1937           [0] { // Traps
1938           } // end Traps
1939           [1] { // Attributes
1940             Attr(#21, 6) { // LineNumberTable at 0x0418
1941               [1] { // LineNumberTable
1942                 0  1; //  at 0x0424
1943               }
1944             } // end LineNumberTable
1945           } // Attributes
1946         } // end Code
1947       } // Attributes
1948     } // Member
1949     ;
1950     { // Member at 0x0424
1951       0x0008; // access
1952       #28; // name_cpx
1953       #29; // sig_cpx
1954       [1] { // Attributes
1955         Attr(#20, 43) { // Code at 0x042C
1956           1; // max_stack
1957           0; // max_locals
1958           Bytes[15]{
1959             0x1206B80007B30008;
1960             0xCB0009B3000AB1;
1961           };
1962           [0] { // Traps
1963           } // end Traps
1964           [1] { // Attributes
1965             Attr(#21, 10) { // LineNumberTable at 0x044D
1966               [2] { // LineNumberTable
1967                 0  2; //  at 0x0459
1968                 8  4; //  at 0x045D
1969               }
1970             } // end LineNumberTable
1971           } // Attributes
1972         } // end Code
1973       } // Attributes
1974     } // Member
1975     ;
1976     { // Member at 0x045D
1977       0x0008; // access
1978       #30; // name_cpx
1979       #31; // sig_cpx
1980       [1] { // Attributes
1981         Attr(#20, 45) { // Code at 0x0465
1982           2; // max_stack
1983           1; // max_locals
1984           Bytes[13]{
1985             0xCB00014B042A5FCC;
1986             0x00024B2AB0;
1987           };
1988           [0] { // Traps
1989           } // end Traps
1990           [1] { // Attributes
1991             Attr(#21, 14) { // LineNumberTable at 0x0484
1992               [3] { // LineNumberTable
1993                 0  6; //  at 0x0490
1994                 4  7; //  at 0x0494
1995                 11  8; //  at 0x0498
1996               }
1997             } // end LineNumberTable
1998           } // Attributes
1999         } // end Code
2000       } // Attributes
2001     } // Member
2002   } // methods
2003 
2004   [3] { // Attributes
2005     Attr(#32, 2) { // SourceFile at 0x049A
2006       #33;
2007     } // end SourceFile
2008     ;
2009     Attr(#56, 10) { // InnerClasses at 0x04A2
2010       [1] { // InnerClasses
2011         #54 #58 #55 25; //  at 0x04B2
2012       }
2013     } // end InnerClasses
2014     ;
2015     Attr(#36, 6) { // BootstrapMethods at 0x04B2
2016       [1] { // bootstrap_methods
2017         {  //  bootstrap_method
2018           #37; // bootstrap_method_ref
2019           [0] { // bootstrap_arguments
2020           }  //  bootstrap_arguments
2021         }  //  bootstrap_method
2022       }
2023     } // end BootstrapMethods
2024   } // Attributes
2025 } // end class CircStaticB
2026 
2027 //////////////////////////////////////////////////////////////////////
2028 
2029 // Test that an inline type cannot be Cloneable.
2030 //
2031 // final inline class ValueCloneable implements Cloneable {
2032 //    final int field;
2033 //    private ValueCloneable() { field = 0; }
2034 //}
2035 
2036 class ValueCloneable {
2037   0xCAFEBABE;
2038   0; // minor version
2039   66; // version
2040   [46] { // Constant Pool
2041     ; // first element is empty
2042     class #22; // #1     at 0x0A
2043     Field #1 #23; // #2     at 0x0D
2044     InvokeDynamic 0s #26; // #3     at 0x12
2045     InvokeDynamic 0s #27; // #4     at 0x17
2046     InvokeDynamic 0s #28; // #5     at 0x1C
2047     class #29; // #6     at 0x21
2048     class #30; // #7     at 0x24
2049     Utf8 "field"; // #8     at 0x27
2050     Utf8 "I"; // #9     at 0x2F
2051     Utf8 "hashCode"; // #10     at 0x33
2052     Utf8 "()I"; // #11     at 0x3E
2053     Utf8 "Code"; // #12     at 0x44
2054     Utf8 "LineNumberTable"; // #13     at 0x4B
2055     Utf8 "equals"; // #14     at 0x5D
2056     Utf8 "(Ljava/lang/Object;)Z"; // #15     at 0x66
2057     Utf8 "toString"; // #16     at 0x7E
2058     Utf8 "()Ljava/lang/String;"; // #17     at 0x89
2059     Utf8 "<vnew>"; // #18     at 0xA0
2060     Utf8 "()QValueCloneable;"; // #19     at 0xA9
2061     Utf8 "SourceFile"; // #20     at 0xBE
2062     Utf8 "ValueCloneable.java"; // #21     at 0xCB
2063     Utf8 "ValueCloneable"; // #22     at 0xE1
2064     NameAndType #8 #9; // #23     at 0xF2
2065     Utf8 "BootstrapMethods"; // #24     at 0xF7
2066     MethodHandle 6b #31; // #25     at 0x010A
2067     NameAndType #10 #32; // #26     at 0x010E
2068     NameAndType #14 #33; // #27     at 0x0113
2069     NameAndType #16 #34; // #28     at 0x0118
2070     Utf8 "java/lang/Object"; // #29     at 0x011D
2071     Utf8 "java/lang/Cloneable"; // #30     at 0x0130
2072     Method #35 #36; // #31     at 0x0146
2073     Utf8 "(QValueCloneable;)I"; // #32     at 0x014B
2074     Utf8 "(QValueCloneable;Ljava/lang/Object;)Z"; // #33     at 0x0161
2075     Utf8 "(QValueCloneable;)Ljava/lang/String;"; // #34     at 0x0189
2076     class #37; // #35     at 0x01B0
2077     NameAndType #38 #42; // #36     at 0x01B3
2078     Utf8 "java/lang/invoke/ValueBootstrapMethods"; // #37     at 0x01B8
2079     Utf8 "makeBootstrapMethod"; // #38     at 0x01E1
2080     class #44; // #39     at 0x01F7
2081     Utf8 "Lookup"; // #40     at 0x01FA
2082     Utf8 "InnerClasses"; // #41     at 0x0203
2083     Utf8 "(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite;"; // #42     at 0x0212
2084     class #45; // #43     at 0x0288
2085     Utf8 "java/lang/invoke/MethodHandles$Lookup"; // #44     at 0x028B
2086     Utf8 "java/lang/invoke/MethodHandles"; // #45     at 0x02B3
2087   } // Constant Pool
2088 
2089   0x0850; // access [ ACC_VALUE ACC_PRIMITIVE ACC_FINAL ]
2090   #1;// this_cpx
2091   #6;// super_cpx
2092 
2093   [1] { // Interfaces
2094     #7;
2095   } // Interfaces
2096 
2097   [1] { // fields
2098     { // Member at 0x02E0
2099       0x0010; // access
2100       #8; // name_cpx
2101       #9; // sig_cpx
2102       [0] { // Attributes
2103       } // Attributes
2104     } // Member
2105   } // fields
2106 
2107   [4] { // methods
2108     { // Member at 0x02EA
2109       0x0011; // access
2110       #10; // name_cpx
2111       #11; // sig_cpx
2112       [1] { // Attributes
2113         Attr(#12, 31) { // Code at 0x02F2
2114           1; // max_stack
2115           1; // max_locals
2116           Bytes[7]{
2117             0x2ABA00030000AC;
2118           };
2119           [0] { // Traps
2120           } // end Traps
2121           [1] { // Attributes
2122             Attr(#13, 6) { // LineNumberTable at 0x030B
2123               [1] { // LineNumberTable
2124                 0  1; //  at 0x0317
2125               }
2126             } // end LineNumberTable
2127           } // Attributes
2128         } // end Code
2129       } // Attributes
2130     } // Member
2131     ;
2132     { // Member at 0x0317
2133       0x0011; // access
2134       #14; // name_cpx
2135       #15; // sig_cpx
2136       [1] { // Attributes
2137         Attr(#12, 32) { // Code at 0x031F
2138           2; // max_stack
2139           2; // max_locals
2140           Bytes[8]{
2141             0x2A2BBA00040000AC;
2142           };
2143           [0] { // Traps
2144           } // end Traps
2145           [1] { // Attributes
2146             Attr(#13, 6) { // LineNumberTable at 0x0339
2147               [1] { // LineNumberTable
2148                 0  1; //  at 0x0345
2149               }
2150             } // end LineNumberTable
2151           } // Attributes
2152         } // end Code
2153       } // Attributes
2154     } // Member
2155     ;
2156     { // Member at 0x0345
2157       0x0011; // access
2158       #16; // name_cpx
2159       #17; // sig_cpx
2160       [1] { // Attributes
2161         Attr(#12, 31) { // Code at 0x034D
2162           1; // max_stack
2163           1; // max_locals
2164           Bytes[7]{
2165             0x2ABA00050000B0;
2166           };
2167           [0] { // Traps
2168           } // end Traps
2169           [1] { // Attributes
2170             Attr(#13, 6) { // LineNumberTable at 0x0366
2171               [1] { // LineNumberTable
2172                 0  1; //  at 0x0372
2173               }
2174             } // end LineNumberTable
2175           } // Attributes
2176         } // end Code
2177       } // Attributes
2178     } // Member
2179     ;
2180     { // Member at 0x0372
2181       0x0008; // access
2182       #18; // name_cpx
2183       #19; // sig_cpx
2184       [1] { // Attributes
2185         Attr(#12, 37) { // Code at 0x037A
2186           2; // max_stack
2187           1; // max_locals
2188           Bytes[13]{
2189             0xCB00014B032A5FCC;
2190             0x00024B2AB0;
2191           };
2192           [0] { // Traps
2193           } // end Traps
2194           [1] { // Attributes
2195             Attr(#13, 6) { // LineNumberTable at 0x0399
2196               [1] { // LineNumberTable
2197                 0  3; //  at 0x03A5
2198               }
2199             } // end LineNumberTable
2200           } // Attributes
2201         } // end Code
2202       } // Attributes
2203     } // Member
2204   } // methods
2205 
2206   [3] { // Attributes
2207     Attr(#20, 2) { // SourceFile at 0x03A7
2208       #21;
2209     } // end SourceFile
2210     ;
2211     Attr(#41, 10) { // InnerClasses at 0x03AF
2212       [1] { // InnerClasses
2213         #39 #43 #40 25; //  at 0x03BF
2214       }
2215     } // end InnerClasses
2216     ;
2217     Attr(#24, 6) { // BootstrapMethods at 0x03BF
2218       [1] { // bootstrap_methods
2219         {  //  bootstrap_method
2220           #25; // bootstrap_method_ref
2221           [0] { // bootstrap_arguments
2222           }  //  bootstrap_arguments
2223         }  //  bootstrap_method
2224       }
2225     } // end BootstrapMethods
2226   } // Attributes
2227 } // end class ValueCloneable
2228 
2229 
2230 // Test that a class with an old class file version cannot contain a Q signature.
2231 class OldClassWithQSig {
2232   0xCAFEBABE;
2233   0; // minor version
2234   52; // version
2235   [29] { // Constant Pool
2236     ; // first element is empty
2237     Utf8 "OldClassWithQSig"; // #1     at 0x0A
2238     class #1; // #2     at 0x1A
2239     Utf8 "java/lang/Object"; // #3     at 0x1D
2240     class #3; // #4     at 0x30
2241     Utf8 "inlineclasses.scala"; // #5     at 0x33
2242     Utf8 "Lscala/reflect/ScalaSignature;"; // #6     at 0x49
2243     Utf8 "bytes"; // #7     at 0x6A
2244     Utf8 "i1QB\t!AAC\bI\t\tQ!!Q\nEAQ!YQ\"T=J]2Lg.Z\"mCN(\"q*W;z}\r1C\n!\tQQ\"D\fa!B:dC2\fB\b\f\te.*fM\t.F!\tQ!#\tJ;%Aj]&$h\b3AA!)qba#"; // #8     at 0x72
2245     Utf8 "i"; // #9     at 0x0128
2246     Utf8 "I"; // #10     at 0x012C
2247     Utf8 "()I"; // #11     at 0x0130
2248     NameAndType #9 #10; // #12     at 0x0136
2249     Field #2 #12; // #13     at 0x013B
2250     Utf8 "this"; // #14     at 0x0140
2251     Utf8 "QOldClassWithQSig;"; // #15     at 0x0147
2252     Utf8 "<init>"; // #16     at 0x0159
2253     Utf8 "(I)V"; // #17     at 0x0162
2254     Utf8 "()V"; // #18     at 0x0169
2255     NameAndType #16 #18; // #19     at 0x016F
2256     Method #4 #19; // #20     at 0x0174
2257     Utf8 "Code"; // #21     at 0x0179
2258     Utf8 "LineNumberTable"; // #22     at 0x0180
2259     Utf8 "LocalVariableTable"; // #23     at 0x0192
2260     Utf8 "MethodParameters"; // #24     at 0x01A7
2261     Utf8 "SourceFile"; // #25     at 0x01BA
2262     Utf8 "RuntimeVisibleAnnotations"; // #26     at 0x01C7
2263     Utf8 "ScalaInlineInfo"; // #27     at 0x01E3
2264     Utf8 "ScalaSig"; // #28     at 0x01F5
2265   } // Constant Pool
2266 
2267   0x0121; // access [ ACC_PUBLIC ACC_SUPER ]
2268   #2;// this_cpx
2269   #4;// super_cpx
2270 
2271   [0] { // Interfaces
2272   } // Interfaces
2273 
2274   [1] { // Fields
2275     {  // field at 0x020A
2276       0x0012; // access
2277       #9; // name_index       : i
2278       #10; // descriptor_index : I
2279       [0] { // Attributes
2280       } // Attributes
2281     }
2282   } // Fields
2283 
2284   [2] { // Methods
2285     {  // method at 0x0214
2286       0x0001; // access
2287       #9; // name_index       : i
2288       #11; // descriptor_index : ()I
2289       [1] { // Attributes
2290         Attr(#21, 47) { // Code at 0x021C
2291           1; // max_stack
2292           1; // max_locals
2293           Bytes[5]{
2294             0x2AB4000DAC;
2295           }
2296           [0] { // Traps
2297           } // end Traps
2298           [2] { // Attributes
2299             Attr(#22, 6) { // LineNumberTable at 0x0233
2300               [1] { // line_number_table
2301                 0  1; //  at 0x023F
2302               }
2303             } // end LineNumberTable
2304             ;
2305             Attr(#23, 12) { // LocalVariableTable at 0x023F
2306               [1] { // LocalVariableTable
2307                 0 5 14 15 0; //  at 0x0251
2308               }
2309             } // end LocalVariableTable
2310           } // Attributes
2311         } // end Code
2312       } // Attributes
2313     }
2314     ;
2315     {  // method at 0x0251
2316       0x0001; // access
2317       #16; // name_index       : <init>
2318       #17; // descriptor_index : (I)V
2319       [2] { // Attributes
2320         Attr(#21, 70) { // Code at 0x0259
2321           2; // max_stack
2322           2; // max_locals
2323           Bytes[10]{
2324             0x2A1BB5000D2AB700;
2325             0x14B1;
2326           }
2327           [0] { // Traps
2328           } // end Traps
2329           [2] { // Attributes
2330             Attr(#22, 14) { // LineNumberTable at 0x0275
2331               [3] { // line_number_table
2332                 0  1; //  at 0x0281
2333                 5  3; //  at 0x0285
2334                 9  1; //  at 0x0289
2335               }
2336             } // end LineNumberTable
2337             ;
2338             Attr(#23, 22) { // LocalVariableTable at 0x0289
2339               [2] { // LocalVariableTable
2340                 0 10 14 15 0; //  at 0x029B
2341                 0 10 9 10 1; //  at 0x02A5
2342               }
2343             } // end LocalVariableTable
2344           } // Attributes
2345         } // end Code
2346         ;
2347         Attr(#24, 5) { // MethodParameters at 0x02A5
2348           [1]b { // MethodParameters
2349             #9  0x0010; //  at 0x02B0
2350           }
2351         } // end MethodParameters
2352       } // Attributes
2353     }
2354   } // Methods
2355 
2356   [4] { // Attributes
2357     Attr(#25, 2) { // SourceFile at 0x02B2
2358       #5;
2359     } // end SourceFile
2360     ;
2361     Attr(#26, 11) { // RuntimeVisibleAnnotations at 0x02BA
2362       [1] { // annotations
2363         {  //  annotation
2364           #6;
2365           [1] { // element_value_pairs
2366             {  //  element value pair
2367               #7;
2368               {  //  element_value
2369                 's';
2370                 #8;
2371               }  //  element_value
2372             }  //  element value pair
2373           }  //  element_value_pairs
2374         }  //  annotation
2375       }
2376     } // end RuntimeVisibleAnnotations
2377     ;
2378     Attr(#27, 14) { // ScalaInlineInfo at 0x02CB
2379       0x0100000200100011;
2380       0x000009000B00;
2381     } // end ScalaInlineInfo
2382     ;
2383     Attr(#28, 3) { // ScalaSig at 0x02DF
2384       0x050200;
2385     } // end ScalaSig
2386   } // Attributes
2387 } // end class OldClassWithQSig
2388 
2389 
2390 // Test that a class with an old class file version cannot contain an array Q signature.
2391 class OldClassWithQArraySig {
2392   0xCAFEBABE;
2393   0; // minor version
2394   52; // version
2395   [20] { // Constant Pool
2396     ; // first element is empty
2397     Method #2 #3; // #1     at 0x0A
2398     class #4; // #2     at 0x0F
2399     NameAndType #5 #6; // #3     at 0x12
2400     Utf8 "java/lang/Object"; // #4     at 0x17
2401     Utf8 "<init>"; // #5     at 0x2A
2402     Utf8 "()V"; // #6     at 0x33
2403     class #8; // #7     at 0x39
2404     Utf8 "java/lang/Integer"; // #8     at 0x3C
2405     Field #10 #11; // #9     at 0x50
2406     class #12; // #10     at 0x55
2407     NameAndType #13 #14; // #11     at 0x58
2408     Utf8 "OldClassWithQArraySig"; // #12     at 0x5D
2409     Utf8 "ia"; // #13     at 0x65
2410     Utf8 "[Qjava/lang/Integer;"; // #14     at 0x6A
2411     Utf8 "Code"; // #15     at 0x81
2412     Utf8 "LineNumberTable"; // #16     at 0x88
2413     Utf8 "runIt"; // #17     at 0x9A
2414     Utf8 "SourceFile"; // #18     at 0xA2
2415     Utf8 "OldClassWithQArraySig.java"; // #19     at 0xAF
2416   } // Constant Pool
2417 
2418   0x0021; // access [ ACC_PUBLIC ACC_SUPER ]
2419   #10;// this_cpx
2420   #2;// super_cpx
2421 
2422   [0] { // Interfaces
2423   } // Interfaces
2424 
2425   [1] { // Fields
2426     {  // field at 0xC6
2427       0x0000; // access
2428       #13; // name_index       : ia
2429       #14; // descriptor_index : [Qjava/lang/Integer;
2430       [0] { // Attributes
2431       } // Attributes
2432     }
2433   } // Fields
2434 
2435   [2] { // Methods
2436     {  // method at 0xD0
2437       0x0001; // access
2438       #5; // name_index       : <init>
2439       #6; // descriptor_index : ()V
2440       [1] { // Attributes
2441         Attr(#15, 29) { // Code at 0xD8
2442           1; // max_stack
2443           1; // max_locals
2444           Bytes[5]{
2445             0x2AB70001B1;
2446           }
2447           [0] { // Traps
2448           } // end Traps
2449           [1] { // Attributes
2450             Attr(#16, 6) { // LineNumberTable at 0xEF
2451               [1] { // line_number_table
2452                 0  1; //  at 0xFB
2453               }
2454             } // end LineNumberTable
2455           } // Attributes
2456         } // end Code
2457       } // Attributes
2458     }
2459     ;
2460     {  // method at 0xFB
2461       0x0001; // access
2462       #17; // name_index       : runIt
2463       #6; // descriptor_index : ()V
2464       [1] { // Attributes
2465         Attr(#15, 37) { // Code at 0x0103
2466           2; // max_stack
2467           1; // max_locals
2468           Bytes[9]{
2469             0x2A05BD0007B50009;
2470             0xB1;
2471           }
2472           [0] { // Traps
2473           } // end Traps
2474           [1] { // Attributes
2475             Attr(#16, 10) { // LineNumberTable at 0x011E
2476               [2] { // line_number_table
2477                 0  6; //  at 0x012A
2478                 8  7; //  at 0x012E
2479               }
2480             } // end LineNumberTable
2481           } // Attributes
2482         } // end Code
2483       } // Attributes
2484     }
2485   } // Methods
2486 
2487   [1] { // Attributes
2488     Attr(#18, 2) { // SourceFile at 0x0130
2489       #19;
2490     } // end SourceFile
2491   } // Attributes
2492 } // end class OldClassWithQArraySig
2493 
2494 
2495 // This class has a super_cpx of zero.  This should cause a ClassFormatError
2496 // exception when this class is loaded.
2497 class SuperIsZero {
2498   0xCAFEBABE;
2499   0; // minor version
2500   66; // version
2501   [15] { // Constant Pool
2502     ; // first element is empty
2503     class #2; // #1     at 0x0A
2504     Utf8 "SuperIsZero"; // #2     at 0x0D
2505     Field #1 #4; // #3     at 0x1A
2506     NameAndType #5 #6; // #4     at 0x1F
2507     Utf8 "x"; // #5     at 0x24
2508     Utf8 "I"; // #6     at 0x28
2509     class #8; // #7     at 0x2C
2510     Utf8 "java/lang/Object"; // #8     at 0x2F
2511     Utf8 "<init>"; // #9     at 0x42
2512     Utf8 "()QSuperIsZero;"; // #10     at 0x4B
2513     Utf8 "Code"; // #11     at 0x5C
2514     Utf8 "LineNumberTable"; // #12     at 0x63
2515     Utf8 "SourceFile"; // #13     at 0x75
2516     Utf8 "SuperIsZero.java"; // #14     at 0x82
2517   } // Constant Pool
2518 
2519   0x0051; // access [ ACC_VALUE ACC_PUBLIC ACC_FINAL ]
2520   #1;// this_cpx
2521   #0;// super_cpx // !!! changed 7 to 0
2522 
2523   [0] { // Interfaces
2524   } // Interfaces
2525 
2526   [1] { // Fields
2527     {  // field at 0x9E
2528       0x0010; // access
2529       #5; // name_index       : x
2530       #6; // descriptor_index : I
2531       [0] { // Attributes
2532       } // Attributes
2533     }
2534   } // Fields
2535 
2536   [1] { // Methods
2537     {  // method at 0xA8
2538       0x0009; // access
2539       #9; // name_index       : <init>
2540       #10; // descriptor_index : ()QSuperIsZero;
2541       [1] { // Attributes
2542         Attr(#11, 45) { // Code at 0xB0
2543           2; // max_stack
2544           1; // max_locals
2545           Bytes[13]{
2546             0xCB00014B082A5FCC;
2547             0x00034B2AB0;
2548           }
2549           [0] { // Traps
2550           } // end Traps
2551           [1] { // Attributes
2552             Attr(#12, 14) { // LineNumberTable at 0xCF
2553               [3] { // line_number_table
2554                 0  4; //  at 0xDB
2555                 4  5; //  at 0xDF
2556                 11  6; //  at 0xE3
2557               }
2558             } // end LineNumberTable
2559           } // Attributes
2560         } // end Code
2561       } // Attributes
2562     }
2563   } // Methods
2564 
2565   [1] { // Attributes
2566     Attr(#13, 2) { // SourceFile at 0xE5
2567       #14;
2568     } // end SourceFile
2569   } // Attributes
2570 } // end class SuperIsZero
2571 
2572 
2573 // This class file tests that a ClassFormatError exception is thrown for an old
2574 // class file (version 49) containing a Q signature.  This file is based on the
2575 // following Java code, except the signature for method callDot() was changed
2576 // to "(QDot;)V";.
2577 /*
2578 public class QInOldClass {
2579 
2580     public static void callDot(Dot d) {
2581         System.out.println("Hi Dot");
2582     }
2583 
2584 }
2585 */
2586 class QInOldClass {
2587   0xCAFEBABE;
2588   0; // minor version
2589   49; // version
2590   [32] { // Constant Pool
2591     ; // first element is empty
2592     Method #2 #3; // #1     at 0x0A
2593     class #4; // #2     at 0x0F
2594     NameAndType #5 #6; // #3     at 0x12
2595     Utf8 "java/lang/Object"; // #4     at 0x17
2596     Utf8 "<init>"; // #5     at 0x2A
2597     Utf8 "()V"; // #6     at 0x33
2598     Field #8 #9; // #7     at 0x39
2599     class #10; // #8     at 0x3E
2600     NameAndType #11 #12; // #9     at 0x41
2601     Utf8 "java/lang/System"; // #10     at 0x46
2602     Utf8 "out"; // #11     at 0x59
2603     Utf8 "Ljava/io/PrintStream;"; // #12     at 0x5F
2604     String #14; // #13     at 0x77
2605     Utf8 "Hi Dot"; // #14     at 0x7A
2606     Method #16 #17; // #15     at 0x83
2607     class #18; // #16     at 0x88
2608     NameAndType #19 #20; // #17     at 0x8B
2609     Utf8 "java/io/PrintStream"; // #18     at 0x90
2610     Utf8 "println"; // #19     at 0xA6
2611     Utf8 "(Ljava/lang/String;)V"; // #20     at 0xB0
2612     class #22; // #21     at 0xC8
2613     Utf8 "QInOldClass"; // #22     at 0xCB
2614     Utf8 "Code"; // #23     at 0xD6
2615     Utf8 "LineNumberTable"; // #24     at 0xDD
2616     Utf8 "callDot"; // #25     at 0xEF
2617     Utf8 "(QDot;)V"; // #26     at 0xF9
2618     Utf8 "SourceFile"; // #27     at 0x0104
2619     Utf8 "QInOldClass.java"; // #28     at 0x0111
2620     Utf8 "Preload"; // #29     at 0x0121
2621     class #31; // #30     at 0x012B
2622     Utf8 "Dot"; // #31     at 0x012E
2623   } // Constant Pool
2624 
2625   0x0021; // access [ ACC_PUBLIC ACC_SUPER ]
2626   #21;// this_cpx
2627   #2;// super_cpx
2628 
2629   [0] { // Interfaces
2630   } // Interfaces
2631 
2632   [0] { // Fields
2633   } // Fields
2634 
2635   [2] { // Methods
2636     {  // method at 0x0140
2637       0x0001; // access
2638       #5; // name_index       : <init>
2639       #6; // descriptor_index : ()V
2640       [1] { // Attributes
2641         Attr(#23, 29) { // Code at 0x0148
2642           1; // max_stack
2643           1; // max_locals
2644           Bytes[5]{
2645             0x2AB70001B1;
2646           }
2647           [0] { // Traps
2648           } // end Traps
2649           [1] { // Attributes
2650             Attr(#24, 6) { // LineNumberTable at 0x015F
2651               [1] { // line_number_table
2652                 0  2; //  at 0x016B
2653               }
2654             } // end LineNumberTable
2655           } // Attributes
2656         } // end Code
2657       } // Attributes
2658     }
2659     ;
2660     {  // method at 0x016B
2661       0x0009; // access
2662       #25; // name_index       : callDot
2663       #26; // descriptor_index : (LDot;)V
2664       [1] { // Attributes
2665         Attr(#23, 37) { // Code at 0x0173
2666           2; // max_stack
2667           1; // max_locals
2668           Bytes[9]{
2669             0xB20007120DB6000F;
2670             0xB1;
2671           }
2672           [0] { // Traps
2673           } // end Traps
2674           [1] { // Attributes
2675             Attr(#24, 10) { // LineNumberTable at 0x018E
2676               [2] { // line_number_table
2677                 0  5; //  at 0x019A
2678                 8  6; //  at 0x019E
2679               }
2680             } // end LineNumberTable
2681           } // Attributes
2682         } // end Code
2683       } // Attributes
2684     }
2685   } // Methods
2686 
2687   [2] { // Attributes
2688     Attr(#27, 2) { // SourceFile at 0x01A0
2689       #28;
2690     } // end SourceFile
2691     ;
2692     Attr(#29, 4) { // Preload at 0x01A8
2693       0x0001001E;
2694     } // end Preload
2695   } // Attributes
2696 } // end class QInOldClass