From 0df3fde37fbf82f2f51d930de3b67d8fda612b69 Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Wed, 2 Feb 2022 11:15:07 +0100 Subject: [PATCH] FIR: implement computeOrigin for IR without accessing sources fixes LT compilation too --- .../kotlin/fir/backend/ConversionUtils.kt | 22 ++++++------------- 1 file changed, 7 insertions(+), 15 deletions(-) diff --git a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt index d79fee489d0..640d0eeca13 100644 --- a/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt +++ b/compiler/fir/fir2ir/src/org/jetbrains/kotlin/fir/backend/ConversionUtils.kt @@ -6,9 +6,7 @@ package org.jetbrains.kotlin.fir.backend import com.intellij.psi.PsiCompiledElement -import org.jetbrains.kotlin.KtFakeSourceElementKind -import org.jetbrains.kotlin.KtNodeTypes -import org.jetbrains.kotlin.KtSourceElement +import org.jetbrains.kotlin.* import org.jetbrains.kotlin.descriptors.* import org.jetbrains.kotlin.fir.* import org.jetbrains.kotlin.fir.backend.generators.FakeOverrideGenerator @@ -21,11 +19,11 @@ import org.jetbrains.kotlin.fir.declarations.utils.isInline import org.jetbrains.kotlin.fir.declarations.utils.isJava import org.jetbrains.kotlin.fir.declarations.utils.visibility import org.jetbrains.kotlin.fir.expressions.* +import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression import org.jetbrains.kotlin.fir.extensions.FirExtensionApiInternals import org.jetbrains.kotlin.fir.extensions.declarationGenerators import org.jetbrains.kotlin.fir.extensions.extensionService import org.jetbrains.kotlin.fir.extensions.generatedDeclarationsSymbolProvider -import org.jetbrains.kotlin.fir.expressions.impl.FirNoReceiverExpression import org.jetbrains.kotlin.fir.references.FirErrorNamedReference import org.jetbrains.kotlin.fir.references.FirReference import org.jetbrains.kotlin.fir.references.FirResolvedNamedReference @@ -59,12 +57,8 @@ import org.jetbrains.kotlin.ir.util.functions import org.jetbrains.kotlin.name.Name import org.jetbrains.kotlin.name.SpecialNames import org.jetbrains.kotlin.name.StandardClassIds -import org.jetbrains.kotlin.psi -import org.jetbrains.kotlin.psi.KtParameter import org.jetbrains.kotlin.psi.KtQualifiedExpression -import org.jetbrains.kotlin.psi.psiUtil.endOffset import org.jetbrains.kotlin.psi.psiUtil.startOffsetSkippingComments -import org.jetbrains.kotlin.resolve.calls.util.isSingleUnderscore import org.jetbrains.kotlin.types.ConstantValueKind import org.jetbrains.kotlin.types.Variance import org.jetbrains.kotlin.util.OperatorNameConventions @@ -689,13 +683,11 @@ fun FirSession.createFilesWithGeneratedDeclarations(): List { fun FirDeclaration?.computeIrOrigin(predefinedOrigin: IrDeclarationOrigin? = null): IrDeclarationOrigin { return predefinedOrigin ?: (this?.origin as? FirDeclarationOrigin.Plugin)?.let { IrPluginDeclarationOrigin(it.key) } - ?: ((this as? FirValueParameter)?.source.psi as? KtParameter)?.let { - if (it.isSingleUnderscore) { - IrDeclarationOrigin.UNDERSCORE_PARAMETER - } else if (it.destructuringDeclaration != null) { - IrDeclarationOrigin.DESTRUCTURED_OBJECT_PARAMETER - } else { - null + ?: (this as? FirValueParameter)?.name?.let { + when (it) { + SpecialNames.UNDERSCORE_FOR_UNUSED_VAR -> IrDeclarationOrigin.UNDERSCORE_PARAMETER + SpecialNames.DESTRUCT -> IrDeclarationOrigin.DESTRUCTURED_OBJECT_PARAMETER + else -> null } } ?: IrDeclarationOrigin.DEFINED