1 /* 2 * Copyright (c) 2020, 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 // Generated from the following class files with PointN.x removed and RectangleP.p1 made private 25 // java org.openjdk.asmtools.Main jdec NamedRectangleN.class NamedRectangleP.class PointN.class RectangleN.class RectangleP.class 26 27 /* 28 package compiler.valhalla.inlinetypes; 29 30 import jdk.internal.vm.annotation.ImplicitlyConstructible; 31 import jdk.internal.vm.annotation.LooselyConsistentValue; 32 import jdk.internal.vm.annotation.NullRestricted; 33 34 @ImplicitlyConstructible 35 @LooselyConsistentValue 36 value class PointN { 37 int x; // Removed 38 int y; 39 40 PointN(int i, int j) { 41 x = i; 42 y = j; 43 } 44 } 45 46 @ImplicitlyConstructible 47 @LooselyConsistentValue 48 value class RectangleN { 49 @NullRestricted 50 PointN p1 = new PointN(4, 7); 51 } 52 53 class NamedRectangleN { 54 @NullRestricted 55 RectangleN rect = new RectangleN(); 56 String name = ""; 57 58 static int getP1X(NamedRectangleN nr) { 59 return nr.rect.p1.x; 60 } 61 } 62 63 @ImplicitlyConstructible 64 @LooselyConsistentValue 65 value class RectangleP { 66 @NullRestricted 67 PointN p1 = new PointN(4, 7); // Made private 68 } 69 70 class NamedRectangleP { 71 @NullRestricted 72 RectangleP rect = new RectangleP(); 73 String name = ""; 74 75 static int getP1Y(NamedRectangleP nr) { 76 return nr.rect.p1.y; 77 } 78 } 79 */ 80 81 class compiler/valhalla/inlinetypes/NamedRectangleN { 82 0xCAFEBABE; 83 65535; // minor version 84 69; // version 85 [] { // Constant Pool 86 ; // first element is empty 87 Method #2 #3; // #1 88 class #4; // #2 89 NameAndType #5 #6; // #3 90 Utf8 "java/lang/Object"; // #4 91 Utf8 "<init>"; // #5 92 Utf8 "()V"; // #6 93 class #8; // #7 94 Utf8 "compiler/valhalla/inlinetypes/RectangleN"; // #8 95 Method #7 #3; // #9 96 Field #11 #12; // #10 97 class #13; // #11 98 NameAndType #14 #15; // #12 99 Utf8 "compiler/valhalla/inlinetypes/NamedRectangleN"; // #13 100 Utf8 "rect"; // #14 101 Utf8 "Lcompiler/valhalla/inlinetypes/RectangleN;"; // #15 102 String #17; // #16 103 Utf8 ""; // #17 104 Field #11 #19; // #18 105 NameAndType #20 #21; // #19 106 Utf8 "name"; // #20 107 Utf8 "Ljava/lang/String;"; // #21 108 Field #7 #23; // #22 109 NameAndType #24 #25; // #23 110 Utf8 "p1"; // #24 111 Utf8 "Lcompiler/valhalla/inlinetypes/PointN;"; // #25 112 Field #27 #28; // #26 113 class #29; // #27 114 NameAndType #30 #31; // #28 115 Utf8 "compiler/valhalla/inlinetypes/PointN"; // #29 116 Utf8 "x"; // #30 117 Utf8 "I"; // #31 118 Utf8 "RuntimeVisibleAnnotations"; // #32 119 Utf8 "Ljdk/internal/vm/annotation/NullRestricted;"; // #33 120 Utf8 "Code"; // #34 121 Utf8 "LineNumberTable"; // #35 122 Utf8 "getP1X"; // #36 123 Utf8 "(Lcompiler/valhalla/inlinetypes/NamedRectangleN;)I"; // #37 124 Utf8 "SourceFile"; // #38 125 Utf8 "Point.java"; // #39 126 Utf8 "Preload"; // #40 127 } // Constant Pool 128 129 0x0020; // access 130 #11;// this_cpx 131 #2;// super_cpx 132 133 [] { // Interfaces 134 } // Interfaces 135 136 [] { // Fields 137 { // field 138 0x0000; // access 139 #14; // name_index 140 #15; // descriptor_index 141 [] { // Attributes 142 Attr(#32) { // RuntimeVisibleAnnotations 143 [] { // annotations 144 { // annotation 145 #33; 146 [] { // element_value_pairs 147 } // element_value_pairs 148 } // annotation 149 } 150 } // end RuntimeVisibleAnnotations 151 } // Attributes 152 } 153 ; 154 { // field 155 0x0000; // access 156 #20; // name_index 157 #21; // descriptor_index 158 [] { // Attributes 159 } // Attributes 160 } 161 } // Fields 162 163 [] { // Methods 164 { // method 165 0x0000; // access 166 #5; // name_index 167 #6; // descriptor_index 168 [] { // Attributes 169 Attr(#34) { // Code 170 3; // max_stack 171 1; // max_locals 172 Bytes[]{ 173 0x2AB700012ABB0007; 174 0x59B70009B5000A2A; 175 0x1210B50012B1; 176 } 177 [] { // Traps 178 } // end Traps 179 [] { // Attributes 180 Attr(#35) { // LineNumberTable 181 [] { // line_number_table 182 0 26; 183 4 27; 184 15 29; 185 } 186 } // end LineNumberTable 187 } // Attributes 188 } // end Code 189 } // Attributes 190 } 191 ; 192 { // method 193 0x0008; // access 194 #36; // name_index 195 #37; // descriptor_index 196 [] { // Attributes 197 Attr(#34) { // Code 198 1; // max_stack 199 1; // max_locals 200 Bytes[]{ 201 0x2AB4000AB40016B4; 202 0x001AAC; 203 } 204 [] { // Traps 205 } // end Traps 206 [] { // Attributes 207 Attr(#35) { // LineNumberTable 208 [] { // line_number_table 209 0 32; 210 } 211 } // end LineNumberTable 212 } // Attributes 213 } // end Code 214 } // Attributes 215 } 216 } // Methods 217 218 [] { // Attributes 219 Attr(#38) { // SourceFile 220 #39; 221 } // end SourceFile 222 ; 223 Attr(#40) { // Preload 224 0x00010007; 225 } // end Preload 226 } // Attributes 227 } // end class compiler/valhalla/inlinetypes/NamedRectangleN 228 class compiler/valhalla/inlinetypes/NamedRectangleP { 229 0xCAFEBABE; 230 65535; // minor version 231 69; // version 232 [] { // Constant Pool 233 ; // first element is empty 234 Method #2 #3; // #1 235 class #4; // #2 236 NameAndType #5 #6; // #3 237 Utf8 "java/lang/Object"; // #4 238 Utf8 "<init>"; // #5 239 Utf8 "()V"; // #6 240 class #8; // #7 241 Utf8 "compiler/valhalla/inlinetypes/RectangleP"; // #8 242 Method #7 #3; // #9 243 Field #11 #12; // #10 244 class #13; // #11 245 NameAndType #14 #15; // #12 246 Utf8 "compiler/valhalla/inlinetypes/NamedRectangleP"; // #13 247 Utf8 "rect"; // #14 248 Utf8 "Lcompiler/valhalla/inlinetypes/RectangleP;"; // #15 249 String #17; // #16 250 Utf8 ""; // #17 251 Field #11 #19; // #18 252 NameAndType #20 #21; // #19 253 Utf8 "name"; // #20 254 Utf8 "Ljava/lang/String;"; // #21 255 Field #7 #23; // #22 256 NameAndType #24 #25; // #23 257 Utf8 "p1"; // #24 258 Utf8 "Lcompiler/valhalla/inlinetypes/PointN;"; // #25 259 Field #27 #28; // #26 260 class #29; // #27 261 NameAndType #30 #31; // #28 262 Utf8 "compiler/valhalla/inlinetypes/PointN"; // #29 263 Utf8 "y"; // #30 264 Utf8 "I"; // #31 265 Utf8 "RuntimeVisibleAnnotations"; // #32 266 Utf8 "Ljdk/internal/vm/annotation/NullRestricted;"; // #33 267 Utf8 "Code"; // #34 268 Utf8 "LineNumberTable"; // #35 269 Utf8 "getP1Y"; // #36 270 Utf8 "(Lcompiler/valhalla/inlinetypes/NamedRectangleP;)I"; // #37 271 Utf8 "SourceFile"; // #38 272 Utf8 "Point.java"; // #39 273 Utf8 "Preload"; // #40 274 } // Constant Pool 275 276 0x0020; // access 277 #11;// this_cpx 278 #2;// super_cpx 279 280 [] { // Interfaces 281 } // Interfaces 282 283 [] { // Fields 284 { // field 285 0x0000; // access 286 #14; // name_index 287 #15; // descriptor_index 288 [] { // Attributes 289 Attr(#32) { // RuntimeVisibleAnnotations 290 [] { // annotations 291 { // annotation 292 #33; 293 [] { // element_value_pairs 294 } // element_value_pairs 295 } // annotation 296 } 297 } // end RuntimeVisibleAnnotations 298 } // Attributes 299 } 300 ; 301 { // field 302 0x0000; // access 303 #20; // name_index 304 #21; // descriptor_index 305 [] { // Attributes 306 } // Attributes 307 } 308 } // Fields 309 310 [] { // Methods 311 { // method 312 0x0000; // access 313 #5; // name_index 314 #6; // descriptor_index 315 [] { // Attributes 316 Attr(#34) { // Code 317 3; // max_stack 318 1; // max_locals 319 Bytes[]{ 320 0x2AB700012ABB0007; 321 0x59B70009B5000A2A; 322 0x1210B50012B1; 323 } 324 [] { // Traps 325 } // end Traps 326 [] { // Attributes 327 Attr(#35) { // LineNumberTable 328 [] { // line_number_table 329 0 43; 330 4 44; 331 15 46; 332 } 333 } // end LineNumberTable 334 } // Attributes 335 } // end Code 336 } // Attributes 337 } 338 ; 339 { // method 340 0x0008; // access 341 #36; // name_index 342 #37; // descriptor_index 343 [] { // Attributes 344 Attr(#34) { // Code 345 1; // max_stack 346 1; // max_locals 347 Bytes[]{ 348 0x2AB4000AB40016B4; 349 0x001AAC; 350 } 351 [] { // Traps 352 } // end Traps 353 [] { // Attributes 354 Attr(#35) { // LineNumberTable 355 [] { // line_number_table 356 0 49; 357 } 358 } // end LineNumberTable 359 } // Attributes 360 } // end Code 361 } // Attributes 362 } 363 } // Methods 364 365 [] { // Attributes 366 Attr(#38) { // SourceFile 367 #39; 368 } // end SourceFile 369 ; 370 Attr(#40) { // Preload 371 0x00010007; 372 } // end Preload 373 } // Attributes 374 } // end class compiler/valhalla/inlinetypes/NamedRectangleP 375 class compiler/valhalla/inlinetypes/PointN { 376 0xCAFEBABE; 377 65535; // minor version 378 69; // version 379 [] { // Constant Pool 380 ; // first element is empty 381 Field #2 #3; // #1 382 class #4; // #2 383 NameAndType #5 #6; // #3 384 Utf8 "compiler/valhalla/inlinetypes/PointN"; // #4 385 Utf8 "y"; // #5 386 Utf8 "I"; // #6 387 Method #8 #9; // #7 388 class #10; // #8 389 NameAndType #11 #12; // #9 390 Utf8 "java/lang/Object"; // #10 391 Utf8 "<init>"; // #11 392 Utf8 "()V"; // #12 393 Utf8 "(II)V"; // #13 394 Utf8 "Code"; // #14 395 Utf8 "LineNumberTable"; // #15 396 Utf8 "SourceFile"; // #16 397 Utf8 "PointN.java"; // #17 398 Utf8 "RuntimeVisibleAnnotations"; // #18 399 Utf8 "Ljdk/internal/vm/annotation/ImplicitlyConstructible;"; // #19 400 Utf8 "Ljdk/internal/vm/annotation/LooselyConsistentValue;"; // #20 401 } // Constant Pool 402 403 0x0010; // access 404 #2;// this_cpx 405 #8;// super_cpx 406 407 [] { // Interfaces 408 } // Interfaces 409 410 [] { // Fields 411 { // field 412 0x0810; // access 413 #5; // name_index 414 #6; // descriptor_index 415 [] { // Attributes 416 } // Attributes 417 } 418 } // Fields 419 420 [] { // Methods 421 { // method 422 0x0000; // access 423 #11; // name_index 424 #13; // descriptor_index 425 [] { // Attributes 426 Attr(#14) { // Code 427 2; // max_stack 428 3; // max_locals 429 Bytes[]{ 430 0x2A1CB500012AB700; 431 0x07B1; 432 } 433 [] { // Traps 434 } // end Traps 435 [] { // Attributes 436 Attr(#15) { // LineNumberTable 437 [] { // line_number_table 438 0 13; 439 5 12; 440 9 14; 441 } 442 } // end LineNumberTable 443 } // Attributes 444 } // end Code 445 } // Attributes 446 } 447 } // Methods 448 449 [] { // Attributes 450 Attr(#16) { // SourceFile 451 #17; 452 } // end SourceFile 453 ; 454 Attr(#18) { // RuntimeVisibleAnnotations 455 [] { // annotations 456 { // annotation 457 #19; 458 [] { // element_value_pairs 459 } // element_value_pairs 460 } // annotation 461 ; 462 { // annotation 463 #20; 464 [] { // element_value_pairs 465 } // element_value_pairs 466 } // annotation 467 } 468 } // end RuntimeVisibleAnnotations 469 } // Attributes 470 } // end class compiler/valhalla/inlinetypes/PointN 471 class compiler/valhalla/inlinetypes/RectangleN { 472 0xCAFEBABE; 473 65535; // minor version 474 69; // version 475 [] { // Constant Pool 476 ; // first element is empty 477 class #2; // #1 478 Utf8 "compiler/valhalla/inlinetypes/PointN"; // #2 479 Method #1 #4; // #3 480 NameAndType #5 #6; // #4 481 Utf8 "<init>"; // #5 482 Utf8 "(II)V"; // #6 483 Field #8 #9; // #7 484 class #10; // #8 485 NameAndType #11 #12; // #9 486 Utf8 "compiler/valhalla/inlinetypes/RectangleN"; // #10 487 Utf8 "p1"; // #11 488 Utf8 "Lcompiler/valhalla/inlinetypes/PointN;"; // #12 489 Method #14 #15; // #13 490 class #16; // #14 491 NameAndType #5 #17; // #15 492 Utf8 "java/lang/Object"; // #16 493 Utf8 "()V"; // #17 494 Utf8 "RuntimeVisibleAnnotations"; // #18 495 Utf8 "Ljdk/internal/vm/annotation/NullRestricted;"; // #19 496 Utf8 "Code"; // #20 497 Utf8 "LineNumberTable"; // #21 498 Utf8 "SourceFile"; // #22 499 Utf8 "Point.java"; // #23 500 Utf8 "Ljdk/internal/vm/annotation/ImplicitlyConstructible;"; // #24 501 Utf8 "Ljdk/internal/vm/annotation/LooselyConsistentValue;"; // #25 502 Utf8 "Preload"; // #26 503 } // Constant Pool 504 505 0x0010; // access 506 #8;// this_cpx 507 #14;// super_cpx 508 509 [] { // Interfaces 510 } // Interfaces 511 512 [] { // Fields 513 { // field 514 0x0810; // access 515 #11; // name_index 516 #12; // descriptor_index 517 [] { // Attributes 518 Attr(#18) { // RuntimeVisibleAnnotations 519 [] { // annotations 520 { // annotation 521 #19; 522 [] { // element_value_pairs 523 } // element_value_pairs 524 } // annotation 525 } 526 } // end RuntimeVisibleAnnotations 527 } // Attributes 528 } 529 } // Fields 530 531 [] { // Methods 532 { // method 533 0x0000; // access 534 #5; // name_index 535 #17; // descriptor_index 536 [] { // Attributes 537 Attr(#20) { // Code 538 5; // max_stack 539 1; // max_locals 540 Bytes[]{ 541 0x2ABB000159071007; 542 0xB70003B500072AB7; 543 0x000DB1; 544 } 545 [] { // Traps 546 } // end Traps 547 [] { // Attributes 548 Attr(#21) { // LineNumberTable 549 [] { // line_number_table 550 0 22; 551 14 21; 552 18 22; 553 } 554 } // end LineNumberTable 555 } // Attributes 556 } // end Code 557 } // Attributes 558 } 559 } // Methods 560 561 [] { // Attributes 562 Attr(#22) { // SourceFile 563 #23; 564 } // end SourceFile 565 ; 566 Attr(#18) { // RuntimeVisibleAnnotations 567 [] { // annotations 568 { // annotation 569 #24; 570 [] { // element_value_pairs 571 } // element_value_pairs 572 } // annotation 573 ; 574 { // annotation 575 #25; 576 [] { // element_value_pairs 577 } // element_value_pairs 578 } // annotation 579 } 580 } // end RuntimeVisibleAnnotations 581 ; 582 Attr(#26) { // Preload 583 0x00010001; 584 } // end Preload 585 } // Attributes 586 } // end class compiler/valhalla/inlinetypes/RectangleN 587 class compiler/valhalla/inlinetypes/RectangleP { 588 0xCAFEBABE; 589 65535; // minor version 590 69; // version 591 [] { // Constant Pool 592 ; // first element is empty 593 class #2; // #1 594 Utf8 "compiler/valhalla/inlinetypes/PointN"; // #2 595 Method #1 #4; // #3 596 NameAndType #5 #6; // #4 597 Utf8 "<init>"; // #5 598 Utf8 "(II)V"; // #6 599 Field #8 #9; // #7 600 class #10; // #8 601 NameAndType #11 #12; // #9 602 Utf8 "compiler/valhalla/inlinetypes/RectangleP"; // #10 603 Utf8 "p1"; // #11 604 Utf8 "Lcompiler/valhalla/inlinetypes/PointN;"; // #12 605 Method #14 #15; // #13 606 class #16; // #14 607 NameAndType #5 #17; // #15 608 Utf8 "java/lang/Object"; // #16 609 Utf8 "()V"; // #17 610 Utf8 "RuntimeVisibleAnnotations"; // #18 611 Utf8 "Ljdk/internal/vm/annotation/NullRestricted;"; // #19 612 Utf8 "Code"; // #20 613 Utf8 "LineNumberTable"; // #21 614 Utf8 "SourceFile"; // #22 615 Utf8 "Point.java"; // #23 616 Utf8 "Ljdk/internal/vm/annotation/ImplicitlyConstructible;"; // #24 617 Utf8 "Ljdk/internal/vm/annotation/LooselyConsistentValue;"; // #25 618 Utf8 "Preload"; // #26 619 } // Constant Pool 620 621 0x0010; // access 622 #8;// this_cpx 623 #14;// super_cpx 624 625 [] { // Interfaces 626 } // Interfaces 627 628 [] { // Fields 629 { // field 630 0x0812; // access 631 #11; // name_index 632 #12; // descriptor_index 633 [] { // Attributes 634 Attr(#18) { // RuntimeVisibleAnnotations 635 [] { // annotations 636 { // annotation 637 #19; 638 [] { // element_value_pairs 639 } // element_value_pairs 640 } // annotation 641 } 642 } // end RuntimeVisibleAnnotations 643 } // Attributes 644 } 645 } // Fields 646 647 [] { // Methods 648 { // method 649 0x0000; // access 650 #5; // name_index 651 #17; // descriptor_index 652 [] { // Attributes 653 Attr(#20) { // Code 654 5; // max_stack 655 1; // max_locals 656 Bytes[]{ 657 0x2ABB000159071007; 658 0xB70003B500072AB7; 659 0x000DB1; 660 } 661 [] { // Traps 662 } // end Traps 663 [] { // Attributes 664 Attr(#21) { // LineNumberTable 665 [] { // line_number_table 666 0 39; 667 14 38; 668 18 39; 669 } 670 } // end LineNumberTable 671 } // Attributes 672 } // end Code 673 } // Attributes 674 } 675 } // Methods 676 677 [] { // Attributes 678 Attr(#22) { // SourceFile 679 #23; 680 } // end SourceFile 681 ; 682 Attr(#18) { // RuntimeVisibleAnnotations 683 [] { // annotations 684 { // annotation 685 #24; 686 [] { // element_value_pairs 687 } // element_value_pairs 688 } // annotation 689 ; 690 { // annotation 691 #25; 692 [] { // element_value_pairs 693 } // element_value_pairs 694 } // annotation 695 } 696 } // end RuntimeVisibleAnnotations 697 ; 698 Attr(#26) { // Preload 699 0x00010001; 700 } // end Preload 701 } // Attributes 702 } // end class compiler/valhalla/inlinetypes/RectangleP