Skip to content

Commit 7c52fde

Browse files
committed
Support class literals
1 parent 8356412 commit 7c52fde

File tree

2 files changed

+17
-0
lines changed

2 files changed

+17
-0
lines changed

jvm-assembler-server/src/main/java/com/mmhelloworld/jvmassembler/server/Asm.java

+14
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
@JsonSubTypes.Type(value = Asm.LdcInteger.class, name = "LdcInteger"),
7171
@JsonSubTypes.Type(value = Asm.LdcString.class, name = "LdcString"),
7272
@JsonSubTypes.Type(value = Asm.LdcLong.class, name = "LdcLong"),
73+
@JsonSubTypes.Type(value = Asm.LdcType.class, name = "LdcType"),
7374
@JsonSubTypes.Type(value = Asm.Ldiv.class, name = "Ldiv"),
7475
@JsonSubTypes.Type(value = Asm.Lload.class, name = "Lload"),
7576
@JsonSubTypes.Type(value = Asm.Lmul.class, name = "Lmul"),
@@ -160,6 +161,7 @@ public enum AsmType {
160161
LdcInteger,
161162
LdcLong,
162163
LdcString,
164+
LdcType,
163165
Ldiv,
164166
Lload,
165167
Lmul,
@@ -776,6 +778,18 @@ public long getVal() {
776778
}
777779
}
778780

781+
public static final class LdcType extends Asm {
782+
private final String val;
783+
784+
public LdcType(@JsonProperty("val") final String val) {
785+
this.val = val;
786+
}
787+
788+
public String getVal() {
789+
return val;
790+
}
791+
}
792+
779793
public static class LookupSwitch extends Asm {
780794
private final String dlabel;
781795
private final String[] clabels;

jvm-assembler-server/src/main/java/com/mmhelloworld/jvmassembler/server/AssemblerResource.java

+3
Original file line numberDiff line numberDiff line change
@@ -390,6 +390,9 @@ public AssemblerResponse assemble(CreateBytecode request) throws JsonProcessingE
390390
case LdcString:
391391
mv.visitLdcInsn(((Asm.LdcString) asm).getVal());
392392
break;
393+
case LdcType:
394+
mv.visitLdcInsn(Type.getType(((Asm.LdcType)asm).getVal()));
395+
break;
393396
case Ldiv:
394397
mv.visitInsn(LDIV);
395398
break;

0 commit comments

Comments
 (0)