KT-11030 Fix referencing wrong field generated for captured variable when this captured variable referenced both from constructor and non-constructor method. Avoid duplicate generation of call to delegated constructor.

This commit is contained in:
Alexey Andreev
2016-03-30 16:40:41 +03:00
parent a5e0c70988
commit 4ac730e5ed
7 changed files with 83 additions and 40 deletions
@@ -0,0 +1,9 @@
class A(val f: () -> Int) {
constructor() : this({ 23 })
}
fun box(): String {
val result = A().f()
if (result != 23) return "fail: $result"
return "OK"
}
@@ -12868,6 +12868,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
doTest(fileName);
}
@TestMetadata("delegatedThisWithLambda.kt")
public void testDelegatedThisWithLambda() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/secondaryConstructors/delegatedThisWithLambda.kt");
doTest(fileName);
}
@TestMetadata("delegationWithPrimary.kt")
public void testDelegationWithPrimary() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/secondaryConstructors/delegationWithPrimary.kt");