From 4d5da2669621aab317db34b1969d7f2828557d2b Mon Sep 17 00:00:00 2001 From: Ilya Kirillov Date: Tue, 9 Mar 2021 15:04:27 +0100 Subject: [PATCH] FIR IDE: get rid of KtFirSetterParameterSymbol --- .../api/symbols/KtPropertyAccessorSymbol.kt | 2 +- .../api/symbols/KtVariableLikeSymbol.kt | 5 -- .../frontend/api/fir/KtSymbolByFirBuilder.kt | 3 - .../fir/symbols/KtFirPropertySetterSymbol.kt | 6 +- .../fir/symbols/KtFirSetterParameterSymbol.kt | 55 ------------------- 5 files changed, 4 insertions(+), 67 deletions(-) delete mode 100644 idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSetterParameterSymbol.kt diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtPropertyAccessorSymbol.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtPropertyAccessorSymbol.kt index 5545698db6e..cfbec885908 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtPropertyAccessorSymbol.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtPropertyAccessorSymbol.kt @@ -29,7 +29,7 @@ abstract class KtPropertyGetterSymbol : KtPropertyAccessorSymbol(), KtTypedSymbo } abstract class KtPropertySetterSymbol : KtPropertyAccessorSymbol() { - abstract val parameter: KtSetterParameterSymbol + abstract val parameter: KtFunctionParameterSymbol abstract override fun createPointer(): KtSymbolPointer } \ No newline at end of file diff --git a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtVariableLikeSymbol.kt b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtVariableLikeSymbol.kt index 0e1c265d0f0..ec5da4d74e2 100644 --- a/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtVariableLikeSymbol.kt +++ b/idea/idea-frontend-api/src/org/jetbrains/kotlin/idea/frontend/api/symbols/KtVariableLikeSymbol.kt @@ -106,11 +106,6 @@ abstract class KtConstructorParameterSymbol : KtParameterSymbol() { abstract override fun createPointer(): KtSymbolPointer } -abstract class KtSetterParameterSymbol : KtParameterSymbol() { - final override val symbolKind: KtSymbolKind get() = KtSymbolKind.NON_PROPERTY_PARAMETER - - abstract override fun createPointer(): KtSymbolPointer -} enum class KtConstructorParameterSymbolKind { VAL_PROPERTY, VAR_PROPERTY, NON_PROPERTY diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt index a431666536b..362f9890c6a 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/KtSymbolByFirBuilder.kt @@ -130,9 +130,6 @@ internal class KtSymbolByFirBuilder private constructor( fun buildFirConstructorParameter(fir: FirValueParameter) = symbolsCache.cache(fir) { KtFirConstructorValueParameterSymbol(fir, resolveState, token, this) } - fun buildFirSetterParameter(fir: FirValueParameter): KtFirSetterParameterSymbol = - symbolsCache.cache(fir) { KtFirSetterParameterSymbol(fir, resolveState, token, this) } - fun buildFunctionSymbol(fir: FirSimpleFunction) = symbolsCache.cache(fir) { KtFirFunctionSymbol(fir, resolveState, token, this) } diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySetterSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySetterSymbol.kt index efb999e2ff1..97cb3f3f20c 100644 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySetterSymbol.kt +++ b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirPropertySetterSymbol.kt @@ -18,8 +18,8 @@ import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.toAnnotati import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef +import org.jetbrains.kotlin.idea.frontend.api.symbols.KtFunctionParameterSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.KtPropertySetterSymbol -import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSetterParameterSymbol import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.* import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtPsiBasedSymbolPointer import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer @@ -52,8 +52,8 @@ internal class KtFirPropertySetterSymbol( override fun containsAnnotation(classId: ClassId): Boolean = firRef.containsAnnotation(classId) override val annotationClassIds: Collection by cached { firRef.getAnnotationClassIds() } - override val parameter: KtSetterParameterSymbol by firRef.withFirAndCache { fir -> - builder.buildFirSetterParameter(fir.valueParameters.single()) + override val parameter: KtFunctionParameterSymbol by firRef.withFirAndCache { fir -> + builder.buildFunctionParameterSymbol(fir.valueParameters.single()) } override val annotatedType: KtTypeAndAnnotations by cached { diff --git a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSetterParameterSymbol.kt b/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSetterParameterSymbol.kt deleted file mode 100644 index e37a62e65dc..00000000000 --- a/idea/idea-frontend-fir/src/org/jetbrains/kotlin/idea/frontend/api/fir/symbols/KtFirSetterParameterSymbol.kt +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright 2010-2020 JetBrains s.r.o. and Kotlin Programming Language contributors. - * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. - */ - -package org.jetbrains.kotlin.idea.frontend.api.fir.symbols - -import com.intellij.psi.PsiElement -import org.jetbrains.kotlin.fir.declarations.FirResolvePhase -import org.jetbrains.kotlin.fir.declarations.FirValueParameter -import org.jetbrains.kotlin.idea.fir.findPsi -import org.jetbrains.kotlin.idea.fir.low.level.api.api.FirModuleResolveState -import org.jetbrains.kotlin.idea.frontend.api.ValidityToken -import org.jetbrains.kotlin.idea.frontend.api.fir.KtSymbolByFirBuilder -import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.containsAnnotation -import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.getAnnotationClassIds -import org.jetbrains.kotlin.idea.frontend.api.fir.symbols.annotations.toAnnotationsList -import org.jetbrains.kotlin.idea.frontend.api.fir.utils.cached -import org.jetbrains.kotlin.idea.frontend.api.fir.utils.firRef -import org.jetbrains.kotlin.idea.frontend.api.fir.utils.weakRef -import org.jetbrains.kotlin.idea.frontend.api.symbols.KtSetterParameterSymbol -import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtAnnotationCall -import org.jetbrains.kotlin.idea.frontend.api.symbols.markers.KtTypeAndAnnotations -import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtPsiBasedSymbolPointer -import org.jetbrains.kotlin.idea.frontend.api.symbols.pointers.KtSymbolPointer -import org.jetbrains.kotlin.name.ClassId -import org.jetbrains.kotlin.name.Name - -internal class KtFirSetterParameterSymbol( - fir: FirValueParameter, - resolveState: FirModuleResolveState, - override val token: ValidityToken, - _builder: KtSymbolByFirBuilder -) : KtSetterParameterSymbol(), KtFirSymbol { - private val builder by weakRef(_builder) - override val firRef = firRef(fir, resolveState) - override val psi: PsiElement? by firRef.withFirAndCache { fir -> fir.findPsi(fir.session) } - - override val name: Name get() = firRef.withFir { it.name } - override val annotatedType: KtTypeAndAnnotations by cached { - firRef.returnTypeAndAnnotations(FirResolvePhase.TYPES, builder) - } - override val hasDefaultValue: Boolean get() = firRef.withFir { it.defaultValue != null } - - override val isVararg: Boolean = false - - override val annotations: List by cached { firRef.toAnnotationsList() } - override fun containsAnnotation(classId: ClassId): Boolean = firRef.containsAnnotation(classId) - override val annotationClassIds: Collection by cached { firRef.getAnnotationClassIds() } - - override fun createPointer(): KtSymbolPointer { - KtPsiBasedSymbolPointer.createForSymbolFromSource(this)?.let { return it } - TODO("Creating pointers for functions parameters from library is not supported yet") - } -} \ No newline at end of file