You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After updating RoboVM 1.11.0 -> 1.13.0, LibGDX 1.7.1 -> 1.9.1 and Kotlin 1.0.0-beta-2423 -> 1.0.0-rc-1036, iOS compilation started to fail with exception:
[ERROR] Couldn't compile app
java.lang.IllegalStateException: Found LocalVariables do not refer to a variable with the same name: [LocalVariable [name=listener$iv, index=2, startUnit=$stack0 = new com.edibleday.coindrag.scene.CoinOverlay$click$1, endUnit=l6 = $stack0, descriptor=Lkotlin/jvm/functions/Function0;], LocalVariable [name=listener, index=2, startUnit=l0 := @this: com.edibleday.coindrag.scene.CoinOverlay, endUnit=null, descriptor=Lkotlin/jvm/functions/Function0;]]
at soot.toolkits.scalar.LocalSplitter.findLocalVariables(LocalSplitter.java:325)
at soot.toolkits.scalar.LocalSplitter.mergeWebs(LocalSplitter.java:258)
at soot.toolkits.scalar.LocalSplitter.internalTransform(LocalSplitter.java:185)
at soot.BodyTransformer.transform(BodyTransformer.java:51)
at soot.Transform.apply(Transform.java:97)
at soot.JimpleBodyPack.applyPhaseOptions(JimpleBodyPack.java:57)
at soot.JimpleBodyPack.internalApply(JimpleBodyPack.java:89)
at soot.Pack.apply(Pack.java:117)
at soot.coffi.CoffiMethodSource.getBody(CoffiMethodSource.java:115)
at soot.SootMethod.getBodyFromMethodSource(SootMethod.java:87)
at soot.SootMethod.retrieveActiveBody(SootMethod.java:321)
at org.robovm.compiler.plugin.lambda.LambdaPlugin.transformMethod(LambdaPlugin.java:94)
at org.robovm.compiler.plugin.lambda.LambdaPlugin.beforeClass(LambdaPlugin.java:82)
at org.robovm.compiler.ClassCompiler.compile(ClassCompiler.java:705)
at org.robovm.compiler.ClassCompiler.compile(ClassCompiler.java:297)
at org.robovm.compiler.AppCompiler.compile(AppCompiler.java:301)
at org.robovm.compiler.AppCompiler.compile(AppCompiler.java:384)
at org.robovm.compiler.AppCompiler.compile(AppCompiler.java:444)
at org.robovm.compiler.AppCompiler.build(AppCompiler.java:773)
at org.robovm.idea.compilation.RoboVmCompilerThread.doCompile(RoboVmCompilerThread.java:53)
at org.robovm.idea.compilation.RoboVmCompilerThread.run(RoboVmCompilerThread.java:59)
CoinOverlay's method click() and it's only usage (in same class):
Minimal test project in attachment.
To reproduce exception, run ./gradlew build launchConsole --stacktrace in terminal (happens in both Linux and MacOS)
packagecom.mycompany.myapp/** * Created by elviss on 16.5.2.*/object Main {
@JvmStatic funmain(args:Array<String>) {
println(ProblemTest().functionCallingInline { "Hello!" })
}
}
classProblemTest {
inlinefuninlineFunction(inlineFunctionArgument: () ->String) = inlineFunctionArgument()
funfunctionCallingInline(normalFunctionArgument: () ->String) = inlineFunction (normalFunctionArgument)
}
Results in exception:
...
java.lang.IllegalStateException: Found LocalVariables do not refer to a variable with the same name: [LocalVariable [name=inlineFunctionArgument$iv, index=1, startUnit=$stack0 = l1, endUnit=return $stack0, descriptor=Lkotlin/jvm/functions/Function0;], LocalVariable [name=normalFunctionArgument, index=1, startUnit=l0 := @this: com.mycompany.myapp.ProblemTest, endUnit=null, descriptor=Lkotlin/jvm/functions/Function0;]]
...
After updating RoboVM 1.11.0 -> 1.13.0, LibGDX 1.7.1 -> 1.9.1 and Kotlin 1.0.0-beta-2423 -> 1.0.0-rc-1036, iOS compilation started to fail with exception:
CoinOverlay's method click() and it's only usage (in same class):
Possibly relevant bytecode:
Same error happens in other places where inline functions are used.
The text was updated successfully, but these errors were encountered: