Whitecoin-XWC / xwc-gjavac

Java and Kotlin compiler for uvm
MIT License
0 stars 0 forks source link

Not supported jvm opcode LNEG to compile to uvm instruction #1

Closed Molocher closed 2 years ago

Molocher commented 2 years ago

I used arithmetic operators (-) in java like this uvmMap.set("change", -amount); When trying to compile it with gjavac, an exception is raised: gjavac.exceptions.GjavacException: not supported jvm opcode LNEG to compile to uvm instruction at gjavac.translater.JavaToUvmTranslator.translateJvmInstruction(JavaToUvmTranslator.kt:1792) at gjavac.translater.JavaToUvmTranslator.translateJvmMethod(JavaToUvmTranslator.kt:1903) at gjavac.translater.JavaToUvmTranslator.translateJvmType(JavaToUvmTranslator.kt:231) at gjavac.translater.JavaToUvmTranslator.translateTopJvmType(JavaToUvmTranslator.kt:147) at gjavac.translater.JavaToUvmTranslator.translateModule(JavaToUvmTranslator.kt:123) at gjavac.MainKt.main(Main.kt:39)

An alternative method to reach '-amount' in Java smart contract is to use '0-amount', but a more elegant way is desired. Need to support LNEG operator in Java smart contract.

Molocher commented 2 years ago

I have test the issue and everything is ok