diff --git a/javap/nl.sander.beejava.testclasses.Compiler_javap.txt b/javap/nl.sander.beejava.testclasses.Compiler_javap.txt new file mode 100644 index 0000000..1dc6b67 --- /dev/null +++ b/javap/nl.sander.beejava.testclasses.Compiler_javap.txt @@ -0,0 +1,699 @@ +Classfile /Users/Shautvast/IdeaProjects/beejava/target/classes/nl/sander/beejava/Compiler.class + Last modified 18 Nov 2020; size 6433 bytes + SHA-256 checksum e76616828289ace3b62f79015aeb244229c29989e2c613a0ec860f075e5e4319 + Compiled from "Compiler.java" +public class nl.sander.beejava.Compiler + minor version: 0 + major version: 58 + flags: (0x0021) ACC_PUBLIC, ACC_SUPER + this_class: #11 // nl/sander/beejava/Compiler + super_class: #2 // java/lang/Object + interfaces: 0, fields: 4, methods: 9, attributes: 3 +Constant pool: + #1 = Methodref #2.#3 // java/lang/Object."":()V + #2 = Class #4 // java/lang/Object + #3 = NameAndType #5:#6 // "":()V + #4 = Utf8 java/lang/Object + #5 = Utf8 + #6 = Utf8 ()V + #7 = Class #8 // nl/sander/beejava/ConstantPoolCreator + #8 = Utf8 nl/sander/beejava/ConstantPoolCreator + #9 = Methodref #7.#3 // nl/sander/beejava/ConstantPoolCreator."":()V + #10 = Fieldref #11.#12 // nl/sander/beejava/Compiler.constantPoolCreator:Lnl/sander/beejava/ConstantPoolCreator; + #11 = Class #13 // nl/sander/beejava/Compiler + #12 = NameAndType #14:#15 // constantPoolCreator:Lnl/sander/beejava/ConstantPoolCreator; + #13 = Utf8 nl/sander/beejava/Compiler + #14 = Utf8 constantPoolCreator + #15 = Utf8 Lnl/sander/beejava/ConstantPoolCreator; + #16 = Fieldref #11.#17 // nl/sander/beejava/Compiler.compiledClass:Lnl/sander/beejava/CompiledClass; + #17 = NameAndType #18:#19 // compiledClass:Lnl/sander/beejava/CompiledClass; + #18 = Utf8 compiledClass + #19 = Utf8 Lnl/sander/beejava/CompiledClass; + #20 = Class #21 // nl/sander/beejava/ConstantPoolEntryCreator + #21 = Utf8 nl/sander/beejava/ConstantPoolEntryCreator + #22 = Methodref #20.#23 // nl/sander/beejava/ConstantPoolEntryCreator."":(Lnl/sander/beejava/CompiledClass;)V + #23 = NameAndType #5:#24 // "":(Lnl/sander/beejava/CompiledClass;)V + #24 = Utf8 (Lnl/sander/beejava/CompiledClass;)V + #25 = Fieldref #11.#26 // nl/sander/beejava/Compiler.constantPoolEntryCreator:Lnl/sander/beejava/ConstantPoolEntryCreator; + #26 = NameAndType #27:#28 // constantPoolEntryCreator:Lnl/sander/beejava/ConstantPoolEntryCreator; + #27 = Utf8 constantPoolEntryCreator + #28 = Utf8 Lnl/sander/beejava/ConstantPoolEntryCreator; + #29 = Class #30 // nl/sander/beejava/CompiledClass + #30 = Utf8 nl/sander/beejava/CompiledClass + #31 = Methodref #29.#32 // nl/sander/beejava/CompiledClass."":(Lnl/sander/beejava/api/BeeSource;)V + #32 = NameAndType #5:#33 // "":(Lnl/sander/beejava/api/BeeSource;)V + #33 = Utf8 (Lnl/sander/beejava/api/BeeSource;)V + #34 = Methodref #11.#23 // nl/sander/beejava/Compiler."":(Lnl/sander/beejava/CompiledClass;)V + #35 = Methodref #11.#36 // nl/sander/beejava/Compiler.compile:()Lnl/sander/beejava/CompiledClass; + #36 = NameAndType #37:#38 // compile:()Lnl/sander/beejava/CompiledClass; + #37 = Utf8 compile + #38 = Utf8 ()Lnl/sander/beejava/CompiledClass; + #39 = Methodref #11.#40 // nl/sander/beejava/Compiler.createConstantPool:()Lnl/sander/beejava/constantpool/ConstantPool; + #40 = NameAndType #41:#42 // createConstantPool:()Lnl/sander/beejava/constantpool/ConstantPool; + #41 = Utf8 createConstantPool + #42 = Utf8 ()Lnl/sander/beejava/constantpool/ConstantPool; + #43 = Methodref #29.#44 // nl/sander/beejava/CompiledClass.setConstantPool:(Lnl/sander/beejava/constantpool/ConstantPool;)V + #44 = NameAndType #45:#46 // setConstantPool:(Lnl/sander/beejava/constantpool/ConstantPool;)V + #45 = Utf8 setConstantPool + #46 = Utf8 (Lnl/sander/beejava/constantpool/ConstantPool;)V + #47 = Methodref #20.#48 // nl/sander/beejava/ConstantPoolEntryCreator.addInterfaces:()V + #48 = NameAndType #49:#6 // addInterfaces:()V + #49 = Utf8 addInterfaces + #50 = Methodref #20.#51 // nl/sander/beejava/ConstantPoolEntryCreator.addFields:()V + #51 = NameAndType #52:#6 // addFields:()V + #52 = Utf8 addFields + #53 = Methodref #11.#54 // nl/sander/beejava/Compiler.addConstructors:()V + #54 = NameAndType #55:#6 // addConstructors:()V + #55 = Utf8 addConstructors + #56 = Methodref #11.#57 // nl/sander/beejava/Compiler.addMethods:()V + #57 = NameAndType #58:#6 // addMethods:()V + #58 = Utf8 addMethods + #59 = Methodref #29.#60 // nl/sander/beejava/CompiledClass.getSource:()Lnl/sander/beejava/api/BeeSource; + #60 = NameAndType #61:#62 // getSource:()Lnl/sander/beejava/api/BeeSource; + #61 = Utf8 getSource + #62 = Utf8 ()Lnl/sander/beejava/api/BeeSource; + #63 = Methodref #64.#65 // nl/sander/beejava/api/BeeSource.getConstructors:()Ljava/util/Set; + #64 = Class #66 // nl/sander/beejava/api/BeeSource + #65 = NameAndType #67:#68 // getConstructors:()Ljava/util/Set; + #66 = Utf8 nl/sander/beejava/api/BeeSource + #67 = Utf8 getConstructors + #68 = Utf8 ()Ljava/util/Set; + #69 = InvokeDynamic #0:#70 // #0:accept:(Lnl/sander/beejava/Compiler;)Ljava/util/function/Consumer; + #70 = NameAndType #71:#72 // accept:(Lnl/sander/beejava/Compiler;)Ljava/util/function/Consumer; + #71 = Utf8 accept + #72 = Utf8 (Lnl/sander/beejava/Compiler;)Ljava/util/function/Consumer; + #73 = InterfaceMethodref #74.#75 // java/util/Set.forEach:(Ljava/util/function/Consumer;)V + #74 = Class #76 // java/util/Set + #75 = NameAndType #77:#78 // forEach:(Ljava/util/function/Consumer;)V + #76 = Utf8 java/util/Set + #77 = Utf8 forEach + #78 = Utf8 (Ljava/util/function/Consumer;)V + #79 = Methodref #64.#80 // nl/sander/beejava/api/BeeSource.getMethods:()Ljava/util/Set; + #80 = NameAndType #81:#68 // getMethods:()Ljava/util/Set; + #81 = Utf8 getMethods + #82 = InvokeDynamic #1:#70 // #1:accept:(Lnl/sander/beejava/Compiler;)Ljava/util/function/Consumer; + #83 = Methodref #20.#84 // nl/sander/beejava/ConstantPoolEntryCreator.addThisClass:()Lnl/sander/beejava/constantpool/entry/ClassEntry; + #84 = NameAndType #85:#86 // addThisClass:()Lnl/sander/beejava/constantpool/entry/ClassEntry; + #85 = Utf8 addThisClass + #86 = Utf8 ()Lnl/sander/beejava/constantpool/entry/ClassEntry; + #87 = Methodref #29.#88 // nl/sander/beejava/CompiledClass.setThisClass:(Lnl/sander/beejava/constantpool/entry/ClassEntry;)V + #88 = NameAndType #89:#90 // setThisClass:(Lnl/sander/beejava/constantpool/entry/ClassEntry;)V + #89 = Utf8 setThisClass + #90 = Utf8 (Lnl/sander/beejava/constantpool/entry/ClassEntry;)V + #91 = String #92 // Code + #92 = Utf8 Code + #93 = Methodref #20.#94 // nl/sander/beejava/ConstantPoolEntryCreator.getOrCreateUtf8:(Ljava/lang/String;)Lnl/sander/beejava/constantpool/entry/Utf8Entry; + #94 = NameAndType #95:#96 // getOrCreateUtf8:(Ljava/lang/String;)Lnl/sander/beejava/constantpool/entry/Utf8Entry; + #95 = Utf8 getOrCreateUtf8 + #96 = Utf8 (Ljava/lang/String;)Lnl/sander/beejava/constantpool/entry/Utf8Entry; + #97 = Fieldref #11.#98 // nl/sander/beejava/Compiler.codeAttributeNameEntry:Lnl/sander/beejava/constantpool/entry/Utf8Entry; + #98 = NameAndType #99:#100 // codeAttributeNameEntry:Lnl/sander/beejava/constantpool/entry/Utf8Entry; + #99 = Utf8 codeAttributeNameEntry + #100 = Utf8 Lnl/sander/beejava/constantpool/entry/Utf8Entry; + #101 = Methodref #29.#102 // nl/sander/beejava/CompiledClass.addConstantPoolEntry:(Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry;)V + #102 = NameAndType #103:#104 // addConstantPoolEntry:(Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry;)V + #103 = Utf8 addConstantPoolEntry + #104 = Utf8 (Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry;)V + #105 = Methodref #29.#106 // nl/sander/beejava/CompiledClass.getConstantTree:()Ljava/util/Set; + #106 = NameAndType #107:#68 // getConstantTree:()Ljava/util/Set; + #107 = Utf8 getConstantTree + #108 = Methodref #7.#109 // nl/sander/beejava/ConstantPoolCreator.createConstantPool:(Ljava/util/Set;)Lnl/sander/beejava/constantpool/ConstantPool; + #109 = NameAndType #41:#110 // createConstantPool:(Ljava/util/Set;)Lnl/sander/beejava/constantpool/ConstantPool; + #110 = Utf8 (Ljava/util/Set;)Lnl/sander/beejava/constantpool/ConstantPool; + #111 = InterfaceMethodref #74.#112 // java/util/Set.stream:()Ljava/util/stream/Stream; + #112 = NameAndType #113:#114 // stream:()Ljava/util/stream/Stream; + #113 = Utf8 stream + #114 = Utf8 ()Ljava/util/stream/Stream; + #115 = InvokeDynamic #2:#116 // #2:apply:(Lnl/sander/beejava/Compiler;)Ljava/util/function/Function; + #116 = NameAndType #117:#118 // apply:(Lnl/sander/beejava/Compiler;)Ljava/util/function/Function; + #117 = Utf8 apply + #118 = Utf8 (Lnl/sander/beejava/Compiler;)Ljava/util/function/Function; + #119 = InterfaceMethodref #120.#121 // java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream; + #120 = Class #122 // java/util/stream/Stream + #121 = NameAndType #123:#124 // map:(Ljava/util/function/Function;)Ljava/util/stream/Stream; + #122 = Utf8 java/util/stream/Stream + #123 = Utf8 map + #124 = Utf8 (Ljava/util/function/Function;)Ljava/util/stream/Stream; + #125 = Methodref #126.#127 // java/util/Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object; + #126 = Class #128 // java/util/Objects + #127 = NameAndType #129:#130 // requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object; + #128 = Utf8 java/util/Objects + #129 = Utf8 requireNonNull + #130 = Utf8 (Ljava/lang/Object;)Ljava/lang/Object; + #131 = InvokeDynamic #3:#132 // #3:accept:(Lnl/sander/beejava/CompiledClass;)Ljava/util/function/Consumer; + #132 = NameAndType #71:#133 // accept:(Lnl/sander/beejava/CompiledClass;)Ljava/util/function/Consumer; + #133 = Utf8 (Lnl/sander/beejava/CompiledClass;)Ljava/util/function/Consumer; + #134 = InterfaceMethodref #120.#75 // java/util/stream/Stream.forEach:(Ljava/util/function/Consumer;)V + #135 = InvokeDynamic #4:#116 // #4:apply:(Lnl/sander/beejava/Compiler;)Ljava/util/function/Function; + #136 = Class #137 // nl/sander/beejava/classinfo/MethodInfo + #137 = Utf8 nl/sander/beejava/classinfo/MethodInfo + #138 = Methodref #139.#140 // nl/sander/beejava/CodeContainer.getName:()Ljava/lang/String; + #139 = Class #141 // nl/sander/beejava/CodeContainer + #140 = NameAndType #142:#143 // getName:()Ljava/lang/String; + #141 = Utf8 nl/sander/beejava/CodeContainer + #142 = Utf8 getName + #143 = Utf8 ()Ljava/lang/String; + #144 = Methodref #139.#145 // nl/sander/beejava/CodeContainer.getSignature:()Ljava/lang/String; + #145 = NameAndType #146:#143 // getSignature:()Ljava/lang/String; + #146 = Utf8 getSignature + #147 = Methodref #136.#148 // nl/sander/beejava/classinfo/MethodInfo."":(Lnl/sander/beejava/constantpool/entry/Utf8Entry;Lnl/sander/beejava/constantpool/entry/Utf8Entry;)V + #148 = NameAndType #5:#149 // "":(Lnl/sander/beejava/constantpool/entry/Utf8Entry;Lnl/sander/beejava/constantpool/entry/Utf8Entry;)V + #149 = Utf8 (Lnl/sander/beejava/constantpool/entry/Utf8Entry;Lnl/sander/beejava/constantpool/entry/Utf8Entry;)V + #150 = Methodref #139.#151 // nl/sander/beejava/CodeContainer.getAccessFlags:()Ljava/util/Set; + #151 = NameAndType #152:#68 // getAccessFlags:()Ljava/util/Set; + #152 = Utf8 getAccessFlags + #153 = Methodref #136.#154 // nl/sander/beejava/classinfo/MethodInfo.addAccessFlags:(Ljava/util/Set;)Lnl/sander/beejava/classinfo/MethodInfo; + #154 = NameAndType #155:#156 // addAccessFlags:(Ljava/util/Set;)Lnl/sander/beejava/classinfo/MethodInfo; + #155 = Utf8 addAccessFlags + #156 = Utf8 (Ljava/util/Set;)Lnl/sander/beejava/classinfo/MethodInfo; + #157 = Methodref #158.#159 // nl/sander/beejava/MethodCodeCreator.createCodeAttribute:(Lnl/sander/beejava/constantpool/entry/Utf8Entry;Lnl/sander/beejava/CodeContainer;)Lnl/sander/beejava/classinfo/attributes/CodeAttribute; + #158 = Class #160 // nl/sander/beejava/MethodCodeCreator + #159 = NameAndType #161:#162 // createCodeAttribute:(Lnl/sander/beejava/constantpool/entry/Utf8Entry;Lnl/sander/beejava/CodeContainer;)Lnl/sander/beejava/classinfo/attributes/CodeAttribute; + #160 = Utf8 nl/sander/beejava/MethodCodeCreator + #161 = Utf8 createCodeAttribute + #162 = Utf8 (Lnl/sander/beejava/constantpool/entry/Utf8Entry;Lnl/sander/beejava/CodeContainer;)Lnl/sander/beejava/classinfo/attributes/CodeAttribute; + #163 = Methodref #136.#164 // nl/sander/beejava/classinfo/MethodInfo.addAttribute:(Lnl/sander/beejava/classinfo/attributes/Attribute;)Lnl/sander/beejava/classinfo/Info; + #164 = NameAndType #165:#166 // addAttribute:(Lnl/sander/beejava/classinfo/attributes/Attribute;)Lnl/sander/beejava/classinfo/Info; + #165 = Utf8 addAttribute + #166 = Utf8 (Lnl/sander/beejava/classinfo/attributes/Attribute;)Lnl/sander/beejava/classinfo/Info; + #167 = Methodref #139.#168 // nl/sander/beejava/CodeContainer.getCode:()Ljava/util/List; + #168 = NameAndType #169:#170 // getCode:()Ljava/util/List; + #169 = Utf8 getCode + #170 = Utf8 ()Ljava/util/List; + #171 = InvokeDynamic #5:#70 // #5:accept:(Lnl/sander/beejava/Compiler;)Ljava/util/function/Consumer; + #172 = InterfaceMethodref #173.#75 // java/util/List.forEach:(Ljava/util/function/Consumer;)V + #173 = Class #174 // java/util/List + #174 = Utf8 java/util/List + #175 = Methodref #176.#177 // nl/sander/beejava/api/CodeLine.hasMethodCall:()Z + #176 = Class #178 // nl/sander/beejava/api/CodeLine + #177 = NameAndType #179:#180 // hasMethodCall:()Z + #178 = Utf8 nl/sander/beejava/api/CodeLine + #179 = Utf8 hasMethodCall + #180 = Utf8 ()Z + #181 = Methodref #20.#182 // nl/sander/beejava/ConstantPoolEntryCreator.getOrCreateMethodRefEntry:(Lnl/sander/beejava/api/CodeLine;)Lnl/sander/beejava/constantpool/entry/MethodRefEntry; + #182 = NameAndType #183:#184 // getOrCreateMethodRefEntry:(Lnl/sander/beejava/api/CodeLine;)Lnl/sander/beejava/constantpool/entry/MethodRefEntry; + #183 = Utf8 getOrCreateMethodRefEntry + #184 = Utf8 (Lnl/sander/beejava/api/CodeLine;)Lnl/sander/beejava/constantpool/entry/MethodRefEntry; + #185 = Methodref #176.#186 // nl/sander/beejava/api/CodeLine.setAssignedEntry:(Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry;)V + #186 = NameAndType #187:#104 // setAssignedEntry:(Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry;)V + #187 = Utf8 setAssignedEntry + #188 = Methodref #176.#189 // nl/sander/beejava/api/CodeLine.hasRefToOwnField:()Z + #189 = NameAndType #190:#180 // hasRefToOwnField:()Z + #190 = Utf8 hasRefToOwnField + #191 = Methodref #176.#192 // nl/sander/beejava/api/CodeLine.hasRefToExternalField:()Z + #192 = NameAndType #193:#180 // hasRefToExternalField:()Z + #193 = Utf8 hasRefToExternalField + #194 = Methodref #20.#195 // nl/sander/beejava/ConstantPoolEntryCreator.getOrCreateFieldRefEntry:(Lnl/sander/beejava/api/CodeLine;)Lnl/sander/beejava/constantpool/entry/FieldRefEntry; + #195 = NameAndType #196:#197 // getOrCreateFieldRefEntry:(Lnl/sander/beejava/api/CodeLine;)Lnl/sander/beejava/constantpool/entry/FieldRefEntry; + #196 = Utf8 getOrCreateFieldRefEntry + #197 = Utf8 (Lnl/sander/beejava/api/CodeLine;)Lnl/sander/beejava/constantpool/entry/FieldRefEntry; + #198 = Methodref #176.#199 // nl/sander/beejava/api/CodeLine.hasConstValue:()Z + #199 = NameAndType #200:#180 // hasConstValue:()Z + #200 = Utf8 hasConstValue + #201 = Methodref #20.#202 // nl/sander/beejava/ConstantPoolEntryCreator.getOrCreatePrimitiveEntry:(Lnl/sander/beejava/api/CodeLine;)Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry; + #202 = NameAndType #203:#204 // getOrCreatePrimitiveEntry:(Lnl/sander/beejava/api/CodeLine;)Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry; + #203 = Utf8 getOrCreatePrimitiveEntry + #204 = Utf8 (Lnl/sander/beejava/api/CodeLine;)Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry; + #205 = Utf8 LineNumberTable + #206 = Utf8 LocalVariableTable + #207 = Utf8 this + #208 = Utf8 Lnl/sander/beejava/Compiler; + #209 = Utf8 (Lnl/sander/beejava/api/BeeSource;)Lnl/sander/beejava/CompiledClass; + #210 = Utf8 beeSource + #211 = Utf8 Lnl/sander/beejava/api/BeeSource; + #212 = Utf8 createMethod + #213 = Utf8 (Lnl/sander/beejava/CodeContainer;)Lnl/sander/beejava/classinfo/MethodInfo; + #214 = Utf8 method + #215 = Utf8 Lnl/sander/beejava/CodeContainer; + #216 = Utf8 updateConstantPool + #217 = Utf8 (Lnl/sander/beejava/CodeContainer;)V + #218 = Utf8 codeContainer + #219 = Utf8 (Lnl/sander/beejava/api/CodeLine;)V + #220 = Utf8 methodRefEntry + #221 = Utf8 Lnl/sander/beejava/constantpool/entry/MethodRefEntry; + #222 = Utf8 fieldRefEntry + #223 = Utf8 Lnl/sander/beejava/constantpool/entry/FieldRefEntry; + #224 = Utf8 primitiveEntry + #225 = Utf8 Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry; + #226 = Utf8 codeline + #227 = Utf8 Lnl/sander/beejava/api/CodeLine; + #228 = Utf8 StackMapTable + #229 = Utf8 SourceFile + #230 = Utf8 Compiler.java + #231 = Utf8 BootstrapMethods + #232 = MethodHandle 6:#233 // REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; + #233 = Methodref #234.#235 // java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; + #234 = Class #236 // java/lang/invoke/LambdaMetafactory + #235 = NameAndType #237:#238 // metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; + #236 = Utf8 java/lang/invoke/LambdaMetafactory + #237 = Utf8 metafactory + #238 = Utf8 (Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; + #239 = MethodType #240 // (Ljava/lang/Object;)V + #240 = Utf8 (Ljava/lang/Object;)V + #241 = MethodHandle 7:#242 // REF_invokeSpecial nl/sander/beejava/Compiler.updateConstantPool:(Lnl/sander/beejava/CodeContainer;)V + #242 = Methodref #11.#243 // nl/sander/beejava/Compiler.updateConstantPool:(Lnl/sander/beejava/CodeContainer;)V + #243 = NameAndType #216:#217 // updateConstantPool:(Lnl/sander/beejava/CodeContainer;)V + #244 = MethodType #245 // (Lnl/sander/beejava/api/BeeConstructor;)V + #245 = Utf8 (Lnl/sander/beejava/api/BeeConstructor;)V + #246 = MethodType #247 // (Lnl/sander/beejava/api/BeeMethod;)V + #247 = Utf8 (Lnl/sander/beejava/api/BeeMethod;)V + #248 = MethodType #130 // (Ljava/lang/Object;)Ljava/lang/Object; + #249 = MethodHandle 7:#250 // REF_invokeSpecial nl/sander/beejava/Compiler.createMethod:(Lnl/sander/beejava/CodeContainer;)Lnl/sander/beejava/classinfo/MethodInfo; + #250 = Methodref #11.#251 // nl/sander/beejava/Compiler.createMethod:(Lnl/sander/beejava/CodeContainer;)Lnl/sander/beejava/classinfo/MethodInfo; + #251 = NameAndType #212:#213 // createMethod:(Lnl/sander/beejava/CodeContainer;)Lnl/sander/beejava/classinfo/MethodInfo; + #252 = MethodType #253 // (Lnl/sander/beejava/api/BeeConstructor;)Lnl/sander/beejava/classinfo/MethodInfo; + #253 = Utf8 (Lnl/sander/beejava/api/BeeConstructor;)Lnl/sander/beejava/classinfo/MethodInfo; + #254 = MethodHandle 5:#255 // REF_invokeVirtual nl/sander/beejava/CompiledClass.addMethod:(Lnl/sander/beejava/classinfo/MethodInfo;)V + #255 = Methodref #29.#256 // nl/sander/beejava/CompiledClass.addMethod:(Lnl/sander/beejava/classinfo/MethodInfo;)V + #256 = NameAndType #257:#258 // addMethod:(Lnl/sander/beejava/classinfo/MethodInfo;)V + #257 = Utf8 addMethod + #258 = Utf8 (Lnl/sander/beejava/classinfo/MethodInfo;)V + #259 = MethodType #258 // (Lnl/sander/beejava/classinfo/MethodInfo;)V + #260 = MethodType #261 // (Lnl/sander/beejava/api/BeeMethod;)Lnl/sander/beejava/classinfo/MethodInfo; + #261 = Utf8 (Lnl/sander/beejava/api/BeeMethod;)Lnl/sander/beejava/classinfo/MethodInfo; + #262 = MethodHandle 7:#263 // REF_invokeSpecial nl/sander/beejava/Compiler.updateConstantPool:(Lnl/sander/beejava/api/CodeLine;)V + #263 = Methodref #11.#264 // nl/sander/beejava/Compiler.updateConstantPool:(Lnl/sander/beejava/api/CodeLine;)V + #264 = NameAndType #216:#219 // updateConstantPool:(Lnl/sander/beejava/api/CodeLine;)V + #265 = MethodType #219 // (Lnl/sander/beejava/api/CodeLine;)V + #266 = Utf8 InnerClasses + #267 = Class #268 // java/lang/invoke/MethodHandles$Lookup + #268 = Utf8 java/lang/invoke/MethodHandles$Lookup + #269 = Class #270 // java/lang/invoke/MethodHandles + #270 = Utf8 java/lang/invoke/MethodHandles + #271 = Utf8 Lookup +{ + private final nl.sander.beejava.CompiledClass compiledClass; + descriptor: Lnl/sander/beejava/CompiledClass; + flags: (0x0012) ACC_PRIVATE, ACC_FINAL + + private final nl.sander.beejava.ConstantPoolEntryCreator constantPoolEntryCreator; + descriptor: Lnl/sander/beejava/ConstantPoolEntryCreator; + flags: (0x0012) ACC_PRIVATE, ACC_FINAL + + private final nl.sander.beejava.ConstantPoolCreator constantPoolCreator; + descriptor: Lnl/sander/beejava/ConstantPoolCreator; + flags: (0x0012) ACC_PRIVATE, ACC_FINAL + + private nl.sander.beejava.constantpool.entry.Utf8Entry codeAttributeNameEntry; + descriptor: Lnl/sander/beejava/constantpool/entry/Utf8Entry; + flags: (0x0002) ACC_PRIVATE + + public nl.sander.beejava.Compiler(nl.sander.beejava.CompiledClass); + descriptor: (Lnl/sander/beejava/CompiledClass;)V + flags: (0x0001) ACC_PUBLIC + Code: + stack=4, locals=2, args_size=2 + 0: aload_0 + 1: invokespecial #1 // Method java/lang/Object."":()V + 4: aload_0 + 5: new #7 // class nl/sander/beejava/ConstantPoolCreator + 8: dup + 9: invokespecial #9 // Method nl/sander/beejava/ConstantPoolCreator."":()V + 12: putfield #10 // Field constantPoolCreator:Lnl/sander/beejava/ConstantPoolCreator; + 15: aload_0 + 16: aload_1 + 17: putfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 20: aload_0 + 21: new #20 // class nl/sander/beejava/ConstantPoolEntryCreator + 24: dup + 25: aload_1 + 26: invokespecial #22 // Method nl/sander/beejava/ConstantPoolEntryCreator."":(Lnl/sander/beejava/CompiledClass;)V + 29: putfield #25 // Field constantPoolEntryCreator:Lnl/sander/beejava/ConstantPoolEntryCreator; + 32: return + LineNumberTable: + line 33: 0 + line 24: 4 + line 34: 15 + line 35: 20 + line 36: 32 + LocalVariableTable: + Start Length Slot Name Signature + 0 33 0 this Lnl/sander/beejava/Compiler; + 0 33 1 compiledClass Lnl/sander/beejava/CompiledClass; + + public static nl.sander.beejava.CompiledClass compile(nl.sander.beejava.api.BeeSource); + descriptor: (Lnl/sander/beejava/api/BeeSource;)Lnl/sander/beejava/CompiledClass; + flags: (0x0009) ACC_PUBLIC, ACC_STATIC + Code: + stack=5, locals=1, args_size=1 + 0: new #11 // class nl/sander/beejava/Compiler + 3: dup + 4: new #29 // class nl/sander/beejava/CompiledClass + 7: dup + 8: aload_0 + 9: invokespecial #31 // Method nl/sander/beejava/CompiledClass."":(Lnl/sander/beejava/api/BeeSource;)V + 12: invokespecial #34 // Method "":(Lnl/sander/beejava/CompiledClass;)V + 15: invokevirtual #35 // Method compile:()Lnl/sander/beejava/CompiledClass; + 18: areturn + LineNumberTable: + line 45: 0 + LocalVariableTable: + Start Length Slot Name Signature + 0 19 0 beeSource Lnl/sander/beejava/api/BeeSource; + + public nl.sander.beejava.CompiledClass compile(); + descriptor: ()Lnl/sander/beejava/CompiledClass; + flags: (0x0001) ACC_PUBLIC + Code: + stack=2, locals=1, args_size=1 + 0: aload_0 + 1: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 4: aload_0 + 5: invokevirtual #39 // Method createConstantPool:()Lnl/sander/beejava/constantpool/ConstantPool; + 8: invokevirtual #43 // Method nl/sander/beejava/CompiledClass.setConstantPool:(Lnl/sander/beejava/constantpool/ConstantPool;)V + 11: aload_0 + 12: getfield #25 // Field constantPoolEntryCreator:Lnl/sander/beejava/ConstantPoolEntryCreator; + 15: invokevirtual #47 // Method nl/sander/beejava/ConstantPoolEntryCreator.addInterfaces:()V + 18: aload_0 + 19: getfield #25 // Field constantPoolEntryCreator:Lnl/sander/beejava/ConstantPoolEntryCreator; + 22: invokevirtual #50 // Method nl/sander/beejava/ConstantPoolEntryCreator.addFields:()V + 25: aload_0 + 26: invokevirtual #53 // Method addConstructors:()V + 29: aload_0 + 30: invokevirtual #56 // Method addMethods:()V + 33: aload_0 + 34: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 37: areturn + LineNumberTable: + line 52: 0 + line 54: 11 + line 55: 18 + line 56: 25 + line 57: 29 + line 59: 33 + LocalVariableTable: + Start Length Slot Name Signature + 0 38 0 this Lnl/sander/beejava/Compiler; + + private nl.sander.beejava.constantpool.ConstantPool createConstantPool(); + descriptor: ()Lnl/sander/beejava/constantpool/ConstantPool; + flags: (0x0002) ACC_PRIVATE + Code: + stack=3, locals=1, args_size=1 + 0: aload_0 + 1: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 4: invokevirtual #59 // Method nl/sander/beejava/CompiledClass.getSource:()Lnl/sander/beejava/api/BeeSource; + 7: invokevirtual #63 // Method nl/sander/beejava/api/BeeSource.getConstructors:()Ljava/util/Set; + 10: aload_0 + 11: invokedynamic #69, 0 // InvokeDynamic #0:accept:(Lnl/sander/beejava/Compiler;)Ljava/util/function/Consumer; + 16: invokeinterface #73, 2 // InterfaceMethod java/util/Set.forEach:(Ljava/util/function/Consumer;)V + 21: aload_0 + 22: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 25: invokevirtual #59 // Method nl/sander/beejava/CompiledClass.getSource:()Lnl/sander/beejava/api/BeeSource; + 28: invokevirtual #79 // Method nl/sander/beejava/api/BeeSource.getMethods:()Ljava/util/Set; + 31: aload_0 + 32: invokedynamic #82, 0 // InvokeDynamic #1:accept:(Lnl/sander/beejava/Compiler;)Ljava/util/function/Consumer; + 37: invokeinterface #73, 2 // InterfaceMethod java/util/Set.forEach:(Ljava/util/function/Consumer;)V + 42: aload_0 + 43: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 46: aload_0 + 47: getfield #25 // Field constantPoolEntryCreator:Lnl/sander/beejava/ConstantPoolEntryCreator; + 50: invokevirtual #83 // Method nl/sander/beejava/ConstantPoolEntryCreator.addThisClass:()Lnl/sander/beejava/constantpool/entry/ClassEntry; + 53: invokevirtual #87 // Method nl/sander/beejava/CompiledClass.setThisClass:(Lnl/sander/beejava/constantpool/entry/ClassEntry;)V + 56: aload_0 + 57: aload_0 + 58: getfield #25 // Field constantPoolEntryCreator:Lnl/sander/beejava/ConstantPoolEntryCreator; + 61: ldc #91 // String Code + 63: invokevirtual #93 // Method nl/sander/beejava/ConstantPoolEntryCreator.getOrCreateUtf8:(Ljava/lang/String;)Lnl/sander/beejava/constantpool/entry/Utf8Entry; + 66: putfield #97 // Field codeAttributeNameEntry:Lnl/sander/beejava/constantpool/entry/Utf8Entry; + 69: aload_0 + 70: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 73: aload_0 + 74: getfield #97 // Field codeAttributeNameEntry:Lnl/sander/beejava/constantpool/entry/Utf8Entry; + 77: invokevirtual #101 // Method nl/sander/beejava/CompiledClass.addConstantPoolEntry:(Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry;)V + 80: aload_0 + 81: getfield #10 // Field constantPoolCreator:Lnl/sander/beejava/ConstantPoolCreator; + 84: aload_0 + 85: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 88: invokevirtual #105 // Method nl/sander/beejava/CompiledClass.getConstantTree:()Ljava/util/Set; + 91: invokevirtual #108 // Method nl/sander/beejava/ConstantPoolCreator.createConstantPool:(Ljava/util/Set;)Lnl/sander/beejava/constantpool/ConstantPool; + 94: areturn + LineNumberTable: + line 63: 0 + line 64: 21 + line 66: 42 + line 68: 56 + line 69: 69 + line 71: 80 + LocalVariableTable: + Start Length Slot Name Signature + 0 95 0 this Lnl/sander/beejava/Compiler; + + public void addConstructors(); + descriptor: ()V + flags: (0x0001) ACC_PUBLIC + Code: + stack=3, locals=1, args_size=1 + 0: aload_0 + 1: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 4: invokevirtual #59 // Method nl/sander/beejava/CompiledClass.getSource:()Lnl/sander/beejava/api/BeeSource; + 7: invokevirtual #63 // Method nl/sander/beejava/api/BeeSource.getConstructors:()Ljava/util/Set; + 10: invokeinterface #111, 1 // InterfaceMethod java/util/Set.stream:()Ljava/util/stream/Stream; + 15: aload_0 + 16: invokedynamic #115, 0 // InvokeDynamic #2:apply:(Lnl/sander/beejava/Compiler;)Ljava/util/function/Function; + 21: invokeinterface #119, 2 // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream; + 26: aload_0 + 27: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 30: dup + 31: invokestatic #125 // Method java/util/Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object; + 34: pop + 35: invokedynamic #131, 0 // InvokeDynamic #3:accept:(Lnl/sander/beejava/CompiledClass;)Ljava/util/function/Consumer; + 40: invokeinterface #134, 2 // InterfaceMethod java/util/stream/Stream.forEach:(Ljava/util/function/Consumer;)V + 45: return + LineNumberTable: + line 75: 0 + line 76: 21 + line 77: 31 + line 78: 45 + LocalVariableTable: + Start Length Slot Name Signature + 0 46 0 this Lnl/sander/beejava/Compiler; + + public void addMethods(); + descriptor: ()V + flags: (0x0001) ACC_PUBLIC + Code: + stack=3, locals=1, args_size=1 + 0: aload_0 + 1: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 4: aload_0 + 5: getfield #97 // Field codeAttributeNameEntry:Lnl/sander/beejava/constantpool/entry/Utf8Entry; + 8: invokevirtual #101 // Method nl/sander/beejava/CompiledClass.addConstantPoolEntry:(Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry;)V + 11: aload_0 + 12: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 15: invokevirtual #59 // Method nl/sander/beejava/CompiledClass.getSource:()Lnl/sander/beejava/api/BeeSource; + 18: invokevirtual #79 // Method nl/sander/beejava/api/BeeSource.getMethods:()Ljava/util/Set; + 21: invokeinterface #111, 1 // InterfaceMethod java/util/Set.stream:()Ljava/util/stream/Stream; + 26: aload_0 + 27: invokedynamic #135, 0 // InvokeDynamic #4:apply:(Lnl/sander/beejava/Compiler;)Ljava/util/function/Function; + 32: invokeinterface #119, 2 // InterfaceMethod java/util/stream/Stream.map:(Ljava/util/function/Function;)Ljava/util/stream/Stream; + 37: aload_0 + 38: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 41: dup + 42: invokestatic #125 // Method java/util/Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object; + 45: pop + 46: invokedynamic #131, 0 // InvokeDynamic #3:accept:(Lnl/sander/beejava/CompiledClass;)Ljava/util/function/Consumer; + 51: invokeinterface #134, 2 // InterfaceMethod java/util/stream/Stream.forEach:(Ljava/util/function/Consumer;)V + 56: return + LineNumberTable: + line 85: 0 + line 86: 11 + line 87: 32 + line 88: 42 + line 89: 56 + LocalVariableTable: + Start Length Slot Name Signature + 0 57 0 this Lnl/sander/beejava/Compiler; + + private nl.sander.beejava.classinfo.MethodInfo createMethod(nl.sander.beejava.api.CodeContainer); + descriptor: (Lnl/sander/beejava/CodeContainer;)Lnl/sander/beejava/classinfo/MethodInfo; + flags: (0x0002) ACC_PRIVATE + Code: + stack=5, locals=2, args_size=2 + 0: new #136 // class nl/sander/beejava/classinfo/MethodInfo + 3: dup + 4: aload_0 + 5: getfield #25 // Field constantPoolEntryCreator:Lnl/sander/beejava/ConstantPoolEntryCreator; + 8: aload_1 + 9: invokevirtual #138 // Method nl/sander/beejava/CodeContainer.getName:()Ljava/lang/String; + 12: invokevirtual #93 // Method nl/sander/beejava/ConstantPoolEntryCreator.getOrCreateUtf8:(Ljava/lang/String;)Lnl/sander/beejava/constantpool/entry/Utf8Entry; + 15: aload_0 + 16: getfield #25 // Field constantPoolEntryCreator:Lnl/sander/beejava/ConstantPoolEntryCreator; + 19: aload_1 + 20: invokevirtual #144 // Method nl/sander/beejava/CodeContainer.getSignature:()Ljava/lang/String; + 23: invokevirtual #93 // Method nl/sander/beejava/ConstantPoolEntryCreator.getOrCreateUtf8:(Ljava/lang/String;)Lnl/sander/beejava/constantpool/entry/Utf8Entry; + 26: invokespecial #147 // Method nl/sander/beejava/classinfo/MethodInfo."":(Lnl/sander/beejava/constantpool/entry/Utf8Entry;Lnl/sander/beejava/constantpool/entry/Utf8Entry;)V + 29: aload_1 + 30: invokevirtual #150 // Method nl/sander/beejava/CodeContainer.getAccessFlags:()Ljava/util/Set; + 33: invokevirtual #153 // Method nl/sander/beejava/classinfo/MethodInfo.addAccessFlags:(Ljava/util/Set;)Lnl/sander/beejava/classinfo/MethodInfo; + 36: aload_0 + 37: getfield #97 // Field codeAttributeNameEntry:Lnl/sander/beejava/constantpool/entry/Utf8Entry; + 40: aload_1 + 41: invokestatic #157 // Method nl/sander/beejava/MethodCodeCreator.createCodeAttribute:(Lnl/sander/beejava/constantpool/entry/Utf8Entry;Lnl/sander/beejava/CodeContainer;)Lnl/sander/beejava/classinfo/attributes/CodeAttribute; + 44: invokevirtual #163 // Method nl/sander/beejava/classinfo/MethodInfo.addAttribute:(Lnl/sander/beejava/classinfo/attributes/Attribute;)Lnl/sander/beejava/classinfo/Info; + 47: checkcast #136 // class nl/sander/beejava/classinfo/MethodInfo + 50: areturn + LineNumberTable: + line 96: 0 + line 97: 9 + line 98: 20 + line 99: 30 + line 100: 41 + line 96: 50 + LocalVariableTable: + Start Length Slot Name Signature + 0 51 0 this Lnl/sander/beejava/Compiler; + 0 51 1 method Lnl/sander/beejava/CodeContainer; + + private void updateConstantPool(nl.sander.beejava.api.CodeContainer); + descriptor: (Lnl/sander/beejava/CodeContainer;)V + flags: (0x0002) ACC_PRIVATE + Code: + stack=3, locals=2, args_size=2 + 0: aload_0 + 1: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 4: aload_0 + 5: getfield #25 // Field constantPoolEntryCreator:Lnl/sander/beejava/ConstantPoolEntryCreator; + 8: aload_1 + 9: invokevirtual #138 // Method nl/sander/beejava/CodeContainer.getName:()Ljava/lang/String; + 12: invokevirtual #93 // Method nl/sander/beejava/ConstantPoolEntryCreator.getOrCreateUtf8:(Ljava/lang/String;)Lnl/sander/beejava/constantpool/entry/Utf8Entry; + 15: invokevirtual #101 // Method nl/sander/beejava/CompiledClass.addConstantPoolEntry:(Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry;)V + 18: aload_0 + 19: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 22: aload_0 + 23: getfield #25 // Field constantPoolEntryCreator:Lnl/sander/beejava/ConstantPoolEntryCreator; + 26: aload_1 + 27: invokevirtual #144 // Method nl/sander/beejava/CodeContainer.getSignature:()Ljava/lang/String; + 30: invokevirtual #93 // Method nl/sander/beejava/ConstantPoolEntryCreator.getOrCreateUtf8:(Ljava/lang/String;)Lnl/sander/beejava/constantpool/entry/Utf8Entry; + 33: invokevirtual #101 // Method nl/sander/beejava/CompiledClass.addConstantPoolEntry:(Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry;)V + 36: aload_1 + 37: invokevirtual #167 // Method nl/sander/beejava/CodeContainer.getCode:()Ljava/util/List; + 40: aload_0 + 41: invokedynamic #171, 0 // InvokeDynamic #5:accept:(Lnl/sander/beejava/Compiler;)Ljava/util/function/Consumer; + 46: invokeinterface #172, 2 // InterfaceMethod java/util/List.forEach:(Ljava/util/function/Consumer;)V + 51: return + LineNumberTable: + line 107: 0 + line 108: 18 + line 109: 36 + line 110: 51 + LocalVariableTable: + Start Length Slot Name Signature + 0 52 0 this Lnl/sander/beejava/Compiler; + 0 52 1 codeContainer Lnl/sander/beejava/CodeContainer; + + private void updateConstantPool(nl.sander.beejava.api.CodeLine); + descriptor: (Lnl/sander/beejava/api/CodeLine;)V + flags: (0x0002) ACC_PRIVATE + Code: + stack=2, locals=3, args_size=2 + 0: aload_1 + 1: invokevirtual #175 // Method nl/sander/beejava/api/CodeLine.hasMethodCall:()Z + 4: ifeq 29 + 7: aload_0 + 8: getfield #25 // Field constantPoolEntryCreator:Lnl/sander/beejava/ConstantPoolEntryCreator; + 11: aload_1 + 12: invokevirtual #181 // Method nl/sander/beejava/ConstantPoolEntryCreator.getOrCreateMethodRefEntry:(Lnl/sander/beejava/api/CodeLine;)Lnl/sander/beejava/constantpool/entry/MethodRefEntry; + 15: astore_2 + 16: aload_1 + 17: aload_2 + 18: invokevirtual #185 // Method nl/sander/beejava/api/CodeLine.setAssignedEntry:(Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry;)V + 21: aload_0 + 22: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 25: aload_2 + 26: invokevirtual #101 // Method nl/sander/beejava/CompiledClass.addConstantPoolEntry:(Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry;)V + 29: aload_1 + 30: invokevirtual #188 // Method nl/sander/beejava/api/CodeLine.hasRefToOwnField:()Z + 33: ifne 43 + 36: aload_1 + 37: invokevirtual #191 // Method nl/sander/beejava/api/CodeLine.hasRefToExternalField:()Z + 40: ifeq 65 + 43: aload_0 + 44: getfield #25 // Field constantPoolEntryCreator:Lnl/sander/beejava/ConstantPoolEntryCreator; + 47: aload_1 + 48: invokevirtual #194 // Method nl/sander/beejava/ConstantPoolEntryCreator.getOrCreateFieldRefEntry:(Lnl/sander/beejava/api/CodeLine;)Lnl/sander/beejava/constantpool/entry/FieldRefEntry; + 51: astore_2 + 52: aload_1 + 53: aload_2 + 54: invokevirtual #185 // Method nl/sander/beejava/api/CodeLine.setAssignedEntry:(Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry;)V + 57: aload_0 + 58: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 61: aload_2 + 62: invokevirtual #101 // Method nl/sander/beejava/CompiledClass.addConstantPoolEntry:(Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry;)V + 65: aload_1 + 66: invokevirtual #198 // Method nl/sander/beejava/api/CodeLine.hasConstValue:()Z + 69: ifeq 94 + 72: aload_0 + 73: getfield #25 // Field constantPoolEntryCreator:Lnl/sander/beejava/ConstantPoolEntryCreator; + 76: aload_1 + 77: invokevirtual #201 // Method nl/sander/beejava/ConstantPoolEntryCreator.getOrCreatePrimitiveEntry:(Lnl/sander/beejava/api/CodeLine;)Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry; + 80: astore_2 + 81: aload_1 + 82: aload_2 + 83: invokevirtual #185 // Method nl/sander/beejava/api/CodeLine.setAssignedEntry:(Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry;)V + 86: aload_0 + 87: getfield #16 // Field compiledClass:Lnl/sander/beejava/CompiledClass; + 90: aload_2 + 91: invokevirtual #101 // Method nl/sander/beejava/CompiledClass.addConstantPoolEntry:(Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry;)V + 94: return + LineNumberTable: + line 122: 0 + line 123: 7 + line 124: 16 + line 125: 21 + line 128: 29 + line 129: 43 + line 130: 52 + line 131: 57 + line 134: 65 + line 135: 72 + line 136: 81 + line 137: 86 + line 139: 94 + LocalVariableTable: + Start Length Slot Name Signature + 16 13 2 methodRefEntry Lnl/sander/beejava/constantpool/entry/MethodRefEntry; + 52 13 2 fieldRefEntry Lnl/sander/beejava/constantpool/entry/FieldRefEntry; + 81 13 2 primitiveEntry Lnl/sander/beejava/constantpool/entry/ConstantPoolEntry; + 0 95 0 this Lnl/sander/beejava/Compiler; + 0 95 1 codeline Lnl/sander/beejava/api/CodeLine; + StackMapTable: number_of_entries = 4 + frame_type = 29 /* same */ + frame_type = 13 /* same */ + frame_type = 21 /* same */ + frame_type = 28 /* same */ +} +SourceFile: "Compiler.java" +BootstrapMethods: + 0: #232 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; + Method arguments: + #239 (Ljava/lang/Object;)V + #241 REF_invokeSpecial nl/sander/beejava/Compiler.updateConstantPool:(Lnl/sander/beejava/CodeContainer;)V + #244 (Lnl/sander/beejava/api/BeeConstructor;)V + 1: #232 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; + Method arguments: + #239 (Ljava/lang/Object;)V + #241 REF_invokeSpecial nl/sander/beejava/Compiler.updateConstantPool:(Lnl/sander/beejava/CodeContainer;)V + #246 (Lnl/sander/beejava/api/BeeMethod;)V + 2: #232 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; + Method arguments: + #248 (Ljava/lang/Object;)Ljava/lang/Object; + #249 REF_invokeSpecial nl/sander/beejava/Compiler.createMethod:(Lnl/sander/beejava/CodeContainer;)Lnl/sander/beejava/classinfo/MethodInfo; + #252 (Lnl/sander/beejava/api/BeeConstructor;)Lnl/sander/beejava/classinfo/MethodInfo; + 3: #232 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; + Method arguments: + #239 (Ljava/lang/Object;)V + #254 REF_invokeVirtual nl/sander/beejava/CompiledClass.addMethod:(Lnl/sander/beejava/classinfo/MethodInfo;)V + #259 (Lnl/sander/beejava/classinfo/MethodInfo;)V + 4: #232 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; + Method arguments: + #248 (Ljava/lang/Object;)Ljava/lang/Object; + #249 REF_invokeSpecial nl/sander/beejava/Compiler.createMethod:(Lnl/sander/beejava/CodeContainer;)Lnl/sander/beejava/classinfo/MethodInfo; + #260 (Lnl/sander/beejava/api/BeeMethod;)Lnl/sander/beejava/classinfo/MethodInfo; + 5: #232 REF_invokeStatic java/lang/invoke/LambdaMetafactory.metafactory:(Ljava/lang/invoke/MethodHandles$Lookup;Ljava/lang/String;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodType;Ljava/lang/invoke/MethodHandle;Ljava/lang/invoke/MethodType;)Ljava/lang/invoke/CallSite; + Method arguments: + #239 (Ljava/lang/Object;)V + #262 REF_invokeSpecial nl/sander/beejava/Compiler.updateConstantPool:(Lnl/sander/beejava/api/CodeLine;)V + #265 (Lnl/sander/beejava/api/CodeLine;)V +InnerClasses: + public static final #271= #267 of #269; // Lookup=class java/lang/invoke/MethodHandles$Lookup of class java/lang/invoke/MethodHandles