From b1b99e167340a7c18ec1dc7551e4ded0b6d7184d Mon Sep 17 00:00:00 2001 From: Roman Golyshev Date: Sun, 6 Feb 2022 12:32:04 +0300 Subject: [PATCH] FIR IDE: Add the simplest support for `PLUGIN` KtDeclarationOrigin --- .../components/KtFirSymbolContainingDeclarationProvider.kt | 1 + .../kotlin/analysis/api/fir/symbols/KtFirSymbol.kt | 1 + .../org/jetbrains/kotlin/analysis/api/symbols/KtSymbol.kt | 7 +++++++ 3 files changed, 9 insertions(+) diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolContainingDeclarationProvider.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolContainingDeclarationProvider.kt index bba36a43fb2..0c2557c35b7 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolContainingDeclarationProvider.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/components/KtFirSymbolContainingDeclarationProvider.kt @@ -58,6 +58,7 @@ internal class KtFirSymbolContainingDeclarationProvider( KtSymbolOrigin.PROPERTY_BACKING_FIELD -> getContainingDeclarationForBackingFieldSymbol(symbol) KtSymbolOrigin.INTERSECTION_OVERRIDE -> TODO() KtSymbolOrigin.SAM_CONSTRUCTOR -> null + KtSymbolOrigin.PLUGIN -> TODO("Containing declaration is requested for ${ DebugSymbolRenderer.render(symbol) }") KtSymbolOrigin.DELEGATED -> TODO() } else -> null diff --git a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSymbol.kt b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSymbol.kt index 25100e44fda..c66eab06cfc 100644 --- a/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSymbol.kt +++ b/analysis/analysis-api-fir/src/org/jetbrains/kotlin/analysis/api/fir/symbols/KtFirSymbol.kt @@ -72,6 +72,7 @@ internal tailrec fun FirDeclaration.ktSymbolOrigin(): KtSymbolOrigin = when (ori original.ktSymbolOrigin() } + is FirDeclarationOrigin.Plugin -> KtSymbolOrigin.PLUGIN else -> { val overridden = (this as? FirCallableDeclaration)?.originalIfFakeOverride() ?: throw InvalidFirDeclarationOriginForSymbol(this) diff --git a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtSymbol.kt b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtSymbol.kt index b14b170d53d..d0533714ec5 100644 --- a/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtSymbol.kt +++ b/analysis/analysis-api/src/org/jetbrains/kotlin/analysis/api/symbols/KtSymbol.kt @@ -109,4 +109,11 @@ public enum class KtSymbolOrigin { * @see KtBackingFieldSymbol */ PROPERTY_BACKING_FIELD, + + /** + * Declaration generated by the compiler plugin. + * + * @see org.jetbrains.kotlin.fir.declarations.FirDeclarationOrigin.Plugin + */ + PLUGIN, }