From 7f9774819cccdbb7252612268f08dc13b0249897 Mon Sep 17 00:00:00 2001 From: Brian Norman Date: Mon, 29 Jan 2024 10:28:43 -0600 Subject: [PATCH] Revert "[FIR] Do not smartcast class delegation implemented properties" This reverts commit bb6f466162a6ba6a4bb816adc02ebcda26182e1f. Reverting the fix for KT-57417 as it causes failures in IntelliJ and Space projects. May reintroduce fix after failures are investigated and resolved. --- ...agnosticCompilerTestFE10TestdataTestGenerated.java | 6 ------ ...edDiagnosticCompilerFE10TestDataTestGenerated.java | 6 ------ ...rLightTreeOldFrontendDiagnosticsTestGenerated.java | 6 ------ .../FirPsiOldFrontendDiagnosticsTestGenerated.java | 6 ------ .../kotlin/fir/resolve/dfa/VariableStorageImpl.kt | 7 +++++-- .../smartCasts/varnotnull/classDelegation.fir.kt | 11 ----------- .../tests/smartCasts/varnotnull/classDelegation.kt | 11 ----------- .../kotlin/test/runners/DiagnosticTestGenerated.java | 6 ------ 8 files changed, 5 insertions(+), 54 deletions(-) delete mode 100644 compiler/testData/diagnostics/tests/smartCasts/varnotnull/classDelegation.fir.kt delete mode 100644 compiler/testData/diagnostics/tests/smartCasts/varnotnull/classDelegation.kt diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java index e64f252ad7b..59982ce7c8d 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/DiagnosticCompilerTestFE10TestdataTestGenerated.java @@ -36991,12 +36991,6 @@ public class DiagnosticCompilerTestFE10TestdataTestGenerated extends AbstractDia runTest("compiler/testData/diagnostics/tests/smartCasts/varnotnull/capturedInlineModifiedBefore.kt"); } - @Test - @TestMetadata("classDelegation.kt") - public void testClassDelegation() throws Exception { - runTest("compiler/testData/diagnostics/tests/smartCasts/varnotnull/classDelegation.kt"); - } - @Test @TestMetadata("doWhileWithBreak.kt") public void testDoWhileWithBreak() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java index 84e4f9d2a8a..a040b392f9c 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/diagnostic/compiler/based/LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated.java @@ -36991,12 +36991,6 @@ public class LLFirPreresolvedReversedDiagnosticCompilerFE10TestDataTestGenerated runTest("compiler/testData/diagnostics/tests/smartCasts/varnotnull/capturedInlineModifiedBefore.kt"); } - @Test - @TestMetadata("classDelegation.kt") - public void testClassDelegation() throws Exception { - runTest("compiler/testData/diagnostics/tests/smartCasts/varnotnull/classDelegation.kt"); - } - @Test @TestMetadata("doWhileWithBreak.kt") public void testDoWhileWithBreak() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java index e6cdb4445e6..91f85bbfbc4 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirLightTreeOldFrontendDiagnosticsTestGenerated.java @@ -34635,12 +34635,6 @@ public class FirLightTreeOldFrontendDiagnosticsTestGenerated extends AbstractFir runTest("compiler/testData/diagnostics/tests/smartCasts/varnotnull/capturedInlineModifiedBefore.kt"); } - @Test - @TestMetadata("classDelegation.kt") - public void testClassDelegation() throws Exception { - runTest("compiler/testData/diagnostics/tests/smartCasts/varnotnull/classDelegation.kt"); - } - @Test @TestMetadata("doWhileWithBreak.kt") public void testDoWhileWithBreak() throws Exception { diff --git a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java index 8041ddbbd3c..cfbe1730ad0 100644 --- a/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java +++ b/compiler/fir/analysis-tests/tests-gen/org/jetbrains/kotlin/test/runners/FirPsiOldFrontendDiagnosticsTestGenerated.java @@ -34761,12 +34761,6 @@ public class FirPsiOldFrontendDiagnosticsTestGenerated extends AbstractFirPsiDia runTest("compiler/testData/diagnostics/tests/smartCasts/varnotnull/capturedInlineModifiedBefore.kt"); } - @Test - @TestMetadata("classDelegation.kt") - public void testClassDelegation() throws Exception { - runTest("compiler/testData/diagnostics/tests/smartCasts/varnotnull/classDelegation.kt"); - } - @Test @TestMetadata("doWhileWithBreak.kt") public void testDoWhileWithBreak() throws Exception { diff --git a/compiler/fir/semantics/src/org/jetbrains/kotlin/fir/resolve/dfa/VariableStorageImpl.kt b/compiler/fir/semantics/src/org/jetbrains/kotlin/fir/resolve/dfa/VariableStorageImpl.kt index f1a616e275d..497a02d0a0a 100644 --- a/compiler/fir/semantics/src/org/jetbrains/kotlin/fir/resolve/dfa/VariableStorageImpl.kt +++ b/compiler/fir/semantics/src/org/jetbrains/kotlin/fir/resolve/dfa/VariableStorageImpl.kt @@ -7,7 +7,8 @@ package org.jetbrains.kotlin.fir.resolve.dfa import org.jetbrains.kotlin.descriptors.Modality import org.jetbrains.kotlin.descriptors.Visibilities -import org.jetbrains.kotlin.fir.* +import org.jetbrains.kotlin.fir.FirElement +import org.jetbrains.kotlin.fir.FirSession import org.jetbrains.kotlin.fir.declarations.FirAnonymousObject import org.jetbrains.kotlin.fir.declarations.FirProperty import org.jetbrains.kotlin.fir.declarations.FirRegularClass @@ -17,6 +18,8 @@ import org.jetbrains.kotlin.fir.declarations.utils.isFinal import org.jetbrains.kotlin.fir.declarations.utils.modality import org.jetbrains.kotlin.fir.declarations.utils.visibility import org.jetbrains.kotlin.fir.expressions.* +import org.jetbrains.kotlin.fir.moduleData +import org.jetbrains.kotlin.fir.originalOrSelf import org.jetbrains.kotlin.fir.references.FirThisReference import org.jetbrains.kotlin.fir.resolve.fullyExpandedType import org.jetbrains.kotlin.fir.resolve.toSymbol @@ -170,7 +173,7 @@ class VariableStorageImpl(private val session: FirSession) : VariableStorage() { val property = this.fir as? FirProperty ?: return PropertyStability.STABLE_VALUE return when { - property.delegate != null || property.isDelegated -> PropertyStability.DELEGATED_PROPERTY + property.delegate != null -> PropertyStability.DELEGATED_PROPERTY property.isLocal -> if (property.isVal) PropertyStability.STABLE_VALUE else PropertyStability.LOCAL_VAR property.isVar -> PropertyStability.MUTABLE_PROPERTY property.receiverParameter != null -> PropertyStability.PROPERTY_WITH_GETTER diff --git a/compiler/testData/diagnostics/tests/smartCasts/varnotnull/classDelegation.fir.kt b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/classDelegation.fir.kt deleted file mode 100644 index 1274772571d..00000000000 --- a/compiler/testData/diagnostics/tests/smartCasts/varnotnull/classDelegation.fir.kt +++ /dev/null @@ -1,11 +0,0 @@ -// ISSUE: KT-57417 - -interface HasProperty { - val property: Int? -} - -class Test(delegate: HasProperty) : HasProperty by delegate - -fun test(a: Test) { - if (a.property != null) a.property + 1 -} diff --git a/compiler/testData/diagnostics/tests/smartCasts/varnotnull/classDelegation.kt b/compiler/testData/diagnostics/tests/smartCasts/varnotnull/classDelegation.kt deleted file mode 100644 index fd62222348b..00000000000 --- a/compiler/testData/diagnostics/tests/smartCasts/varnotnull/classDelegation.kt +++ /dev/null @@ -1,11 +0,0 @@ -// ISSUE: KT-57417 - -interface HasProperty { - val property: Int? -} - -class Test(delegate: HasProperty) : HasProperty by delegate - -fun test(a: Test) { - if (a.property != null) a.property + 1 -} diff --git a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java index 9403a29c4e9..426977c1d02 100644 --- a/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java +++ b/compiler/tests-common-new/tests-gen/org/jetbrains/kotlin/test/runners/DiagnosticTestGenerated.java @@ -36991,12 +36991,6 @@ public class DiagnosticTestGenerated extends AbstractDiagnosticTest { runTest("compiler/testData/diagnostics/tests/smartCasts/varnotnull/capturedInlineModifiedBefore.kt"); } - @Test - @TestMetadata("classDelegation.kt") - public void testClassDelegation() throws Exception { - runTest("compiler/testData/diagnostics/tests/smartCasts/varnotnull/classDelegation.kt"); - } - @Test @TestMetadata("doWhileWithBreak.kt") public void testDoWhileWithBreak() throws Exception {