FIR: Add problem tests for smart cast within init-section

This commit is contained in:
Denis Zharkov
2020-02-07 12:18:22 +03:00
parent 3518fcf78c
commit c8c0ba480b
4 changed files with 48 additions and 0 deletions
@@ -0,0 +1,14 @@
interface I
interface S : I {
fun foo()
}
fun s(): S = TODO()
class Main {
private val x: I
init {
x = s()
x.<!UNRESOLVED_REFERENCE!>foo<!>()
}
}
@@ -0,0 +1,24 @@
FILE: smartCastInInit.kt
public abstract interface I : R|kotlin/Any| {
}
public abstract interface S : R|I| {
public abstract fun foo(): R|kotlin/Unit|
}
public final fun s(): R|S| {
^s R|kotlin/TODO|()
}
public final class Main : R|kotlin/Any| {
public constructor(): R|Main| {
super<R|kotlin/Any|>()
}
private final val x: R|I|
private get(): R|I|
init {
this@R|/Main|.R|/Main.x| = R|/s|()
this@R|/Main|.R|/Main.x|.<Unresolved name: foo>#()
}
}
@@ -1166,6 +1166,11 @@ public class FirDiagnosticsTestGenerated extends AbstractFirDiagnosticsTest {
runTest("compiler/fir/resolve/testData/resolve/problems/samConversionInConstructorCall.kt");
}
@TestMetadata("smartCastInInit.kt")
public void testSmartCastInInit() throws Exception {
runTest("compiler/fir/resolve/testData/resolve/problems/smartCastInInit.kt");
}
@TestMetadata("syntheticsVsNormalProperties.kt")
public void testSyntheticsVsNormalProperties() throws Exception {
runTest("compiler/fir/resolve/testData/resolve/problems/syntheticsVsNormalProperties.kt");
@@ -1166,6 +1166,11 @@ public class FirDiagnosticsWithLightTreeTestGenerated extends AbstractFirDiagnos
runTest("compiler/fir/resolve/testData/resolve/problems/samConversionInConstructorCall.kt");
}
@TestMetadata("smartCastInInit.kt")
public void testSmartCastInInit() throws Exception {
runTest("compiler/fir/resolve/testData/resolve/problems/smartCastInInit.kt");
}
@TestMetadata("syntheticsVsNormalProperties.kt")
public void testSyntheticsVsNormalProperties() throws Exception {
runTest("compiler/fir/resolve/testData/resolve/problems/syntheticsVsNormalProperties.kt");