diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt index b0f949c1b9a..ea26b2d2420 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/KtSymbolByFirBuilder.kt @@ -311,12 +311,6 @@ internal class KtSymbolByFirBuilder constructor( } } - fun buildErrorVariableSymbol(firSymbol: FirErrorPropertySymbol): KtFirErrorVariableSymbol { - return symbolsCache.cache(firSymbol) { - KtFirErrorVariableSymbol(firSymbol, analysisSession) - } - } - fun buildSyntheticJavaPropertySymbol(firSymbol: FirSyntheticPropertySymbol): KtFirSyntheticJavaPropertySymbol { return symbolsCache.cache(firSymbol) { KtFirSyntheticJavaPropertySymbol(firSymbol, analysisSession) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirLocalVariableSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirLocalVariableSymbol.kt index 90bfddfaaf4..a2a0dd43cd1 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirLocalVariableSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirLocalVariableSymbol.kt @@ -18,18 +18,18 @@ import org.jetbrains.kotlin.analysis.api.symbols.pointers.CanNotCreateSymbolPoin import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtPsiBasedSymbolPointer import org.jetbrains.kotlin.analysis.api.symbols.pointers.KtSymbolPointer import org.jetbrains.kotlin.analysis.api.types.KtType -import org.jetbrains.kotlin.fir.declarations.FirErrorProperty -import org.jetbrains.kotlin.fir.declarations.FirProperty -import org.jetbrains.kotlin.fir.declarations.FirVariable -import org.jetbrains.kotlin.fir.symbols.impl.FirErrorPropertySymbol import org.jetbrains.kotlin.fir.symbols.impl.FirPropertySymbol -import org.jetbrains.kotlin.fir.symbols.impl.FirVariableSymbol import org.jetbrains.kotlin.name.Name -internal abstract class KtFirLocalOrErrorVariableSymbol>( - override val firSymbol: S, +internal class KtFirLocalVariableSymbol( + override val firSymbol: FirPropertySymbol, override val analysisSession: KtFirAnalysisSession, -) : KtLocalVariableSymbol(), KtFirSymbol { +) : KtLocalVariableSymbol(), + KtFirSymbol { + init { + assert(firSymbol.isLocal) + } + override val psi: PsiElement? = withValidityAssertion { firSymbol.fir.getAllowedPsi() } override val annotationsList: KtAnnotationsList @@ -37,6 +37,7 @@ internal abstract class KtFirLocalOrErrorVariableSymbol(firSymbol, analysisSession) { - init { - assert(firSymbol.isLocal) - } - - override val isVal: Boolean get() = withValidityAssertion { firSymbol.isVal } -} - -internal class KtFirErrorVariableSymbol( - firSymbol: FirErrorPropertySymbol, - analysisSession: KtFirAnalysisSession, -) : KtFirLocalOrErrorVariableSymbol(firSymbol, analysisSession), - KtFirSymbol { - override val isVal: Boolean - get() = firSymbol.fir.isVal } diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSymbolProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSymbolProvider.kt index 86b43106996..ff3ec25334a 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSymbolProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSymbolProvider.kt @@ -11,7 +11,6 @@ import org.jetbrains.kotlin.analysis.api.getModule import org.jetbrains.kotlin.analysis.api.symbols.* import org.jetbrains.kotlin.analysis.low.level.api.fir.api.getOrBuildFirFile import org.jetbrains.kotlin.analysis.low.level.api.fir.api.resolveToFirSymbolOfType -import org.jetbrains.kotlin.analysis.low.level.api.fir.api.throwUnexpectedFirElementError import org.jetbrains.kotlin.analysis.low.level.api.fir.util.errorWithFirSpecificEntries import org.jetbrains.kotlin.analysis.low.level.api.fir.util.withFirSymbolEntry import org.jetbrains.kotlin.analysis.utils.errors.buildErrorWithAttachment @@ -186,11 +185,9 @@ internal class KtFirSymbolProvider( override val ROOT_PACKAGE_SYMBOL: KtPackageSymbol = KtFirPackageSymbol(FqName.ROOT, firResolveSession.project, token) - override fun getDestructuringDeclarationEntrySymbol(psi: KtDestructuringDeclarationEntry): KtFirLocalOrErrorVariableSymbol<*, *> { - return when (val firSymbol = psi.resolveToFirSymbolOfType>(firResolveSession)) { - is FirPropertySymbol -> firSymbolBuilder.variableLikeBuilder.buildLocalVariableSymbol(firSymbol) - is FirErrorPropertySymbol -> firSymbolBuilder.variableLikeBuilder.buildErrorVariableSymbol(firSymbol) - else -> throwUnexpectedFirElementError(firSymbol, psi, FirPropertySymbol::class, FirErrorPropertySymbol::class) - } + override fun getDestructuringDeclarationEntrySymbol(psi: KtDestructuringDeclarationEntry): KtLocalVariableSymbol { + return firSymbolBuilder.variableLikeBuilder.buildLocalVariableSymbol( + psi.resolveToFirSymbolOfType(firResolveSession) + ) } } diff --git a/analysis/low-level-api-fir/testdata/getOrBuildFir/declarations/destructionWithNoRValue.kt b/analysis/low-level-api-fir/testdata/getOrBuildFir/declarations/destructionWithNoRValue.kt deleted file mode 100644 index de867066983..00000000000 --- a/analysis/low-level-api-fir/testdata/getOrBuildFir/declarations/destructionWithNoRValue.kt +++ /dev/null @@ -1 +0,0 @@ -val (o, r) diff --git a/analysis/low-level-api-fir/testdata/getOrBuildFir/declarations/destructionWithNoRValue.txt b/analysis/low-level-api-fir/testdata/getOrBuildFir/declarations/destructionWithNoRValue.txt deleted file mode 100644 index 1958ff46c18..00000000000 --- a/analysis/low-level-api-fir/testdata/getOrBuildFir/declarations/destructionWithNoRValue.txt +++ /dev/null @@ -1,6 +0,0 @@ -KT element: KtDestructuringDeclarationEntry -FIR element: FirErrorPropertyImpl -FIR source kind: KtRealSourceElementKind - -FIR element rendered: - diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/OutOfContentRootGetOrBuildFirTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/OutOfContentRootGetOrBuildFirTestGenerated.java index ea265827815..cbb9f4a3183 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/OutOfContentRootGetOrBuildFirTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/OutOfContentRootGetOrBuildFirTestGenerated.java @@ -441,12 +441,6 @@ public class OutOfContentRootGetOrBuildFirTestGenerated extends AbstractOutOfCon runTest("analysis/low-level-api-fir/testdata/getOrBuildFir/declarations/constructorProperty.kt"); } - @Test - @TestMetadata("destructionWithNoRValue.kt") - public void testDestructionWithNoRValue() throws Exception { - runTest("analysis/low-level-api-fir/testdata/getOrBuildFir/declarations/destructionWithNoRValue.kt"); - } - @Test @TestMetadata("destructuring.kt") public void testDestructuring() throws Exception { diff --git a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceGetOrBuildFirTestGenerated.java b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceGetOrBuildFirTestGenerated.java index 6b75ad52249..b879dceda4e 100644 --- a/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceGetOrBuildFirTestGenerated.java +++ b/analysis/low-level-api-fir/tests/org/jetbrains/kotlin/analysis/low/level/api/fir/SourceGetOrBuildFirTestGenerated.java @@ -441,12 +441,6 @@ public class SourceGetOrBuildFirTestGenerated extends AbstractSourceGetOrBuildFi runTest("analysis/low-level-api-fir/testdata/getOrBuildFir/declarations/constructorProperty.kt"); } - @Test - @TestMetadata("destructionWithNoRValue.kt") - public void testDestructionWithNoRValue() throws Exception { - runTest("analysis/low-level-api-fir/testdata/getOrBuildFir/declarations/destructionWithNoRValue.kt"); - } - @Test @TestMetadata("destructuring.kt") public void testDestructuring() throws Exception {