diff --git a/compiler/fir/resolve/testData/resolve/problems/smartCastInInit.kt b/compiler/fir/resolve/testData/resolve/problems/smartCastInInit.kt new file mode 100644 index 00000000000..152880e38f0 --- /dev/null +++ b/compiler/fir/resolve/testData/resolve/problems/smartCastInInit.kt @@ -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.foo() + } +} diff --git a/compiler/fir/resolve/testData/resolve/problems/smartCastInInit.txt b/compiler/fir/resolve/testData/resolve/problems/smartCastInInit.txt new file mode 100644 index 00000000000..d95a0891a39 --- /dev/null +++ b/compiler/fir/resolve/testData/resolve/problems/smartCastInInit.txt @@ -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() + } + + 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|.#() + } + + } diff --git a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsTestGenerated.java b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsTestGenerated.java index 8dc865f90c6..f27aa1724b8 100644 --- a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsTestGenerated.java +++ b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsTestGenerated.java @@ -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"); diff --git a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsWithLightTreeTestGenerated.java b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsWithLightTreeTestGenerated.java index 4b903412f31..5f33268544f 100644 --- a/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsWithLightTreeTestGenerated.java +++ b/compiler/fir/resolve/tests/org/jetbrains/kotlin/fir/FirDiagnosticsWithLightTreeTestGenerated.java @@ -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");