KT-3389: Local class construction results in CompilationException && KT-2873 && KT-3210

KT-2873: VerifyError on instantiating a local class inside a closure
KT-3210 Inline Class: CompilationException: Back-end (JVM) Internal error: wrong code generated java.lang.ArrayIndexOutOfBoundsException null

 #KT-3389 Fixed
This commit is contained in:
Mikhael Bogdanov
2013-04-23 15:57:54 +04:00
parent 9682b72643
commit aa2db75266
13 changed files with 236 additions and 1 deletions
@@ -0,0 +1,32 @@
package org.example
trait SomeTrait {}
trait KotlinProcessor<T> {
fun execute(callback: KotlinCallback<T>?);
}
trait KotlinCallback<T> {
fun on(t : T);
}
public class Test(name : String) : KotlinProcessor<SomeTrait> {
public override fun execute(callback: KotlinCallback<SomeTrait>?) {
if(callback != null) {
class InlineTrait : SomeTrait {}
var inlineTrait = InlineTrait()
callback.on(inlineTrait)
}
}
}
fun box() : String {
var f = "fail"
Test("OK").execute(object : KotlinCallback<SomeTrait> {
override fun on(t: SomeTrait) {
f = "OK"
}
})
return f
}