@@ -816,18 +816,18 @@ class JavaEmitter {
816816 fact?.descriptor == " J" -> " ${value} L"
817817 else -> " $value "
818818 }
819- builder.addStatement(" $def = $rendered " )
819+ builder.addStatement(" ${escapeJavaPoet( def)} = ${escapeJavaPoet( rendered)} " )
820820 }
821821
822822 " CONST_STRING" -> {
823823 val def = renderName(stmt.defs.firstOrNull() ? : return , paramNameMap)
824- builder.addStatement(" $def = ${javaStringLiteral(stmt.imm?.stringValue ? : " " )} " )
824+ builder.addStatement(" ${escapeJavaPoet( def)} = ${javaStringLiteral(stmt.imm?.stringValue ? : " " )} " )
825825 }
826826
827827 " CONST_CLASS" -> {
828828 val def = renderName(stmt.defs.firstOrNull() ? : return , paramNameMap)
829829 val typeValue = annotated.emittedDescriptor(stmt.imm?.typeValue ? : return )
830- builder.addStatement(" $def = \$ T.class" , descriptorToTypeName(typeValue))
830+ builder.addStatement(" ${escapeJavaPoet( def)} = \$ T.class" , descriptorToTypeName(typeValue))
831831 }
832832
833833 " MOVE" -> {
@@ -846,14 +846,14 @@ class JavaEmitter {
846846 " NEW_INSTANCE" -> {
847847 val def = renderName(stmt.defs.firstOrNull() ? : return , paramNameMap)
848848 val typeValue = annotated.emittedDescriptor(stmt.imm?.typeValue ? : return )
849- builder.addStatement(" $def = new \$ T()" , descriptorToTypeName(typeValue))
849+ builder.addStatement(" ${escapeJavaPoet( def)} = new \$ T()" , descriptorToTypeName(typeValue))
850850 }
851851
852852 " NEW_ARRAY" -> {
853853 val def = renderName(stmt.defs.firstOrNull() ? : return , paramNameMap)
854854 val typeValue = annotated.emittedDescriptor(stmt.imm?.typeValue ? : return )
855855 val sizeArg = renderName(stmt.args.firstOrNull() ? : " 0" , paramNameMap)
856- builder.addStatement(" $def = ${newArrayExpression(typeValue, sizeArg, annotated.renameIndex)} " )
856+ builder.addStatement(" ${escapeJavaPoet( def)} = ${escapeJavaPoet( newArrayExpression(typeValue, sizeArg, annotated.renameIndex) )} " )
857857 }
858858
859859 " INVOKE" -> {
@@ -963,7 +963,7 @@ class JavaEmitter {
963963 val def = renderName(stmt.defs.firstOrNull() ? : return , paramNameMap)
964964 val src = renderName(stmt.args.firstOrNull() ? : return , paramNameMap)
965965 val typeValue = annotated.emittedDescriptor(stmt.imm?.typeValue ? : return )
966- builder.addStatement(" $def = (\$ T) $src " , descriptorToTypeName(typeValue))
966+ builder.addStatement(" ${escapeJavaPoet( def)} = (\$ T) ${escapeJavaPoet( src)} " , descriptorToTypeName(typeValue))
967967 }
968968
969969 " ARRAY_GET" -> {
@@ -974,7 +974,7 @@ class JavaEmitter {
974974 val index = renderName(stmt.args.getOrNull(1 ) ? : " 0" , paramNameMap)
975975 val componentDescriptor = annotated.factFor(rawArray)?.descriptor?.let (::arrayComponentDescriptor)
976976 val defDescriptor = annotated.factFor(rawDef)?.descriptor
977- builder.addStatement(" $def = ${escapeJavaPoet(coerceValue(" $array [$index ]" , componentDescriptor, defDescriptor))} " )
977+ builder.addStatement(" ${escapeJavaPoet( def)} = ${escapeJavaPoet(coerceValue(" $array [$index ]" , componentDescriptor, defDescriptor))} " )
978978 }
979979
980980 " ARRAY_PUT" -> {
@@ -1002,30 +1002,30 @@ class JavaEmitter {
10021002 val rhs = stmt.args.getOrNull(1 )?.let { arg -> renderName(arg, paramNameMap) }
10031003 val op = opToJavaOperator(stmt.op)
10041004 if (rhs != null ) {
1005- builder.addStatement(" $def = $lhs $op $rhs " )
1005+ builder.addStatement(" ${escapeJavaPoet( def)} = ${escapeJavaPoet( lhs)} $op ${escapeJavaPoet( rhs)} " )
10061006 } else {
1007- builder.addStatement(" $def = $lhs $op ${stmt.imm?.value ? : 0L } " )
1007+ builder.addStatement(" ${escapeJavaPoet( def)} = ${escapeJavaPoet( lhs)} $op ${stmt.imm?.value ? : 0L } " )
10081008 }
10091009 }
10101010
10111011 " CONVERT" -> {
10121012 val def = renderName(stmt.defs.firstOrNull() ? : return , paramNameMap)
10131013 val src = renderName(stmt.args.firstOrNull() ? : return , paramNameMap)
10141014 val toKind = stmt.imm?.kind?.substringAfter(" _TO_" ) ? : return
1015- builder.addStatement(" $def = (${kindToJavaCast(toKind)} ) $src " )
1015+ builder.addStatement(" ${escapeJavaPoet( def)} = (${kindToJavaCast(toKind)} ) ${escapeJavaPoet( src)} " )
10161016 }
10171017
10181018 " INSTANCE_OF" -> {
10191019 val def = renderName(stmt.defs.firstOrNull() ? : return , paramNameMap)
10201020 val obj = renderName(stmt.args.firstOrNull() ? : return , paramNameMap)
10211021 val typeValue = annotated.emittedDescriptor(stmt.imm?.typeValue ? : return )
1022- builder.addStatement(" $def = $obj instanceof \$ T" , descriptorToTypeName(typeValue))
1022+ builder.addStatement(" ${escapeJavaPoet( def)} = ${escapeJavaPoet( obj)} instanceof \$ T" , descriptorToTypeName(typeValue))
10231023 }
10241024
10251025 " ARRAY_LENGTH" -> {
10261026 val def = renderName(stmt.defs.firstOrNull() ? : return , paramNameMap)
10271027 val array = renderName(stmt.args.firstOrNull() ? : return , paramNameMap)
1028- builder.addStatement(" $def = $array .length" )
1028+ builder.addStatement(" ${escapeJavaPoet( def)} = ${escapeJavaPoet( array)} .length" )
10291029 }
10301030
10311031 " NOP" , " ARRAY_PAYLOAD" , " SWITCH_PAYLOAD" , " FILL_ARRAY_DATA" , " FILLED_NEW_ARRAY" , " CMP" , " MOVE_EXCEPTION" -> {
@@ -1065,7 +1065,7 @@ class JavaEmitter {
10651065
10661066 " THROW" -> {
10671067 val src = term.args?.firstOrNull()?.let { renderName(it, paramNameMap) } ? : " new RuntimeException()"
1068- builder.addStatement(" throw $src " )
1068+ builder.addStatement(" throw ${escapeJavaPoet( src)} " )
10691069 }
10701070
10711071 " GOTO" , " FALLTHROUGH" -> Unit
0 commit comments