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   66; // 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   66; // 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   66; // 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   66; // 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   66; // 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