From ef535a2d85e8ec21cd81faf433202653f77092e1 Mon Sep 17 00:00:00 2001 From: Ivan Cilcic Date: Tue, 23 Jul 2019 14:19:49 +0300 Subject: [PATCH] Resolve converter errors after merge (light tree to FIR) --- .../kotlin/fir/lightTree/converter/ConverterUtil.kt | 5 +++-- .../fir/lightTree/converter/DeclarationsConverter.kt | 10 +++++----- .../fir/lightTree/converter/ExpressionsConverter.kt | 4 ++-- .../fir/lightTree/converter/utils/ExpressionUtil.kt | 2 +- .../fir/lightTree/fir/DestructuringDeclaration.kt | 2 +- .../kotlin/fir/lightTree/compare/DummyElement.kt | 6 +++--- .../fir/lightTree/compare/FirPartialTransformer.kt | 8 ++++---- 7 files changed, 19 insertions(+), 18 deletions(-) diff --git a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/ConverterUtil.kt b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/ConverterUtil.kt index 9c594c5164b..432479be06b 100644 --- a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/ConverterUtil.kt +++ b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/ConverterUtil.kt @@ -26,6 +26,7 @@ import org.jetbrains.kotlin.fir.references.FirResolvedCallableReferenceImpl import org.jetbrains.kotlin.fir.references.FirSimpleNamedReference import org.jetbrains.kotlin.fir.symbols.CallableId import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol +import org.jetbrains.kotlin.fir.symbols.impl.FirNamedFunctionSymbol import org.jetbrains.kotlin.fir.symbols.impl.FirTypeParameterSymbol import org.jetbrains.kotlin.fir.types.* import org.jetbrains.kotlin.fir.types.impl.* @@ -229,7 +230,7 @@ object DataClassUtil { if (!property.isVal && !property.isVar) continue val name = Name.identifier("component$componentIndex") componentIndex++ - val symbol = FirFunctionSymbol( + val symbol = FirNamedFunctionSymbol( CallableId( ClassNameUtil.packageFqName, ClassNameUtil.className, @@ -276,7 +277,7 @@ object DataClassUtil { firPrimaryConstructor: FirConstructor, properties: List ) { - val symbol = FirFunctionSymbol( + val symbol = FirNamedFunctionSymbol( CallableId( ClassNameUtil.packageFqName, ClassNameUtil.className, diff --git a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt index 8629520f158..1b792b00ae2 100644 --- a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt +++ b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/DeclarationsConverter.kt @@ -591,7 +591,7 @@ class DeclarationsConverter( return FirPrimaryConstructorImpl( session, null, - FirFunctionSymbol(ClassNameUtil.callableIdForClassConstructor()), + FirConstructorSymbol(ClassNameUtil.callableIdForClassConstructor()), if (primaryConstructor != null) modifiers.getVisibility() else defaultVisibility, modifiers.hasExpect(), modifiers.hasActual(), @@ -644,7 +644,7 @@ class DeclarationsConverter( val firConstructor = FirConstructorImpl( session, null, - FirFunctionSymbol(ClassNameUtil.callableIdForClassConstructor()), + FirConstructorSymbol(ClassNameUtil.callableIdForClassConstructor()), modifiers.getVisibility(), modifiers.hasExpect(), modifiers.hasActual(), @@ -811,7 +811,7 @@ class DeclarationsConverter( */ private fun convertDestructingDeclaration(destructingDeclaration: LighterASTNode): DestructuringDeclaration { var isVar = false - val entries = mutableListOf() + val entries = mutableListOf>() var firExpression: FirExpression? = null destructingDeclaration.forEachChildren { when (it.tokenType) { @@ -827,7 +827,7 @@ class DeclarationsConverter( /** * @see org.jetbrains.kotlin.parsing.KotlinParsing.parseMultiDeclarationName */ - private fun convertDestructingDeclarationEntry(entry: LighterASTNode): FirVariable { + private fun convertDestructingDeclarationEntry(entry: LighterASTNode): FirVariable<*> { var modifiers = Modifier(session) lateinit var identifier: String var firType: FirTypeRef? = null @@ -960,7 +960,7 @@ class DeclarationsConverter( FirMemberFunctionImpl( session, null, - FirFunctionSymbol(ClassNameUtil.callableIdForName(functionName, isLocal)), + FirNamedFunctionSymbol(ClassNameUtil.callableIdForName(functionName, isLocal)), functionName, if (isLocal) Visibilities.LOCAL else modifiers.getVisibility(), modifiers.getModality(), diff --git a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt index 74361bfdd14..f7f3db7e708 100644 --- a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt +++ b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/ExpressionsConverter.kt @@ -567,11 +567,11 @@ class ExpressionsConverter( */ private fun convertWhenExpression(whenExpression: LighterASTNode): FirExpression { var subjectExpression: FirExpression? = null - var subjectVariable: FirVariable? = null + var subjectVariable: FirVariable<*>? = null val whenEntries = mutableListOf() whenExpression.forEachChildren { when (it.tokenType) { - PROPERTY -> subjectVariable = declarationsConverter.convertPropertyDeclaration(it) as FirVariable + PROPERTY -> subjectVariable = declarationsConverter.convertPropertyDeclaration(it) as FirVariable<*> DESTRUCTURING_DECLARATION -> subjectExpression = getAsFirExpression(it) WHEN_ENTRY -> whenEntries += convertWhenEntry(it) else -> if (it.isExpression()) subjectExpression = getAsFirExpression(it) diff --git a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/utils/ExpressionUtil.kt b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/utils/ExpressionUtil.kt index 888ec81562c..18f198e8769 100644 --- a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/utils/ExpressionUtil.kt +++ b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/converter/utils/ExpressionUtil.kt @@ -153,7 +153,7 @@ fun ExpressionsConverter.generateIncrementOrDecrementBlock( fun generateDestructuringBlock( session: FirSession, multiDeclaration: DestructuringDeclaration, - container: FirVariable, + container: FirVariable<*>, tmpVariable: Boolean ): FirExpression { return FirBlockImpl(session, null).apply { diff --git a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/DestructuringDeclaration.kt b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/DestructuringDeclaration.kt index 5076a239a28..6caca174d8e 100644 --- a/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/DestructuringDeclaration.kt +++ b/compiler/fir/lightTree/src/org/jetbrains/kotlin/fir/lightTree/fir/DestructuringDeclaration.kt @@ -15,7 +15,7 @@ import org.jetbrains.kotlin.fir.lightTree.converter.utils.generateDestructuringB data class DestructuringDeclaration( val isVar: Boolean, - val entries: List, + val entries: List>, val initializer: FirExpression? ) { fun toFirDestructingDeclaration(session: FirSession): FirExpression { diff --git a/compiler/fir/lightTree/tests/org/jetbrains/kotlin/fir/lightTree/compare/DummyElement.kt b/compiler/fir/lightTree/tests/org/jetbrains/kotlin/fir/lightTree/compare/DummyElement.kt index b62e2f70800..810edbfc3e8 100644 --- a/compiler/fir/lightTree/tests/org/jetbrains/kotlin/fir/lightTree/compare/DummyElement.kt +++ b/compiler/fir/lightTree/tests/org/jetbrains/kotlin/fir/lightTree/compare/DummyElement.kt @@ -33,7 +33,7 @@ class DummyFirStatement( session: FirSession = object : FirSessionBase(null) {} ) : FirUnknownTypeExpression(session, psi), DummyElement -class DummyFirVariable( +class DummyFirVariable>( override val psi: PsiElement? = null, override val session: FirSession = object : FirSessionBase(null) {}, override val annotations: List = mutableListOf(), @@ -42,9 +42,9 @@ class DummyFirVariable( override var returnTypeRef: FirTypeRef = FirImplicitTypeRefImpl(session, psi), override val isVar: Boolean = false, override var initializer: FirExpression? = null, - override val symbol: FirVariableSymbol = FirVariableSymbol(name), + override val symbol: FirVariableSymbol = FirVariableSymbol(name), override var delegate: FirExpression? = null -) : FirVariable, DummyElement { +) : FirVariable, DummyElement { override fun transformReturnTypeRef(transformer: FirTransformer, data: D) { returnTypeRef = returnTypeRef.transformSingle(transformer, data) } diff --git a/compiler/fir/lightTree/tests/org/jetbrains/kotlin/fir/lightTree/compare/FirPartialTransformer.kt b/compiler/fir/lightTree/tests/org/jetbrains/kotlin/fir/lightTree/compare/FirPartialTransformer.kt index 39ff7e5bd1c..b2ddb4e5c58 100644 --- a/compiler/fir/lightTree/tests/org/jetbrains/kotlin/fir/lightTree/compare/FirPartialTransformer.kt +++ b/compiler/fir/lightTree/tests/org/jetbrains/kotlin/fir/lightTree/compare/FirPartialTransformer.kt @@ -52,7 +52,7 @@ class FirPartialTransformer( } override fun transformNamedFunction(namedFunction: FirNamedFunction, data: Nothing?): CompositeTransformResult { - return if (!visitLocalMembers && namedFunction is FirAbstractCallableMember && namedFunction.visibility == Visibilities.LOCAL) { + return if (!visitLocalMembers && namedFunction is FirAbstractCallableMember<*> && namedFunction.visibility == Visibilities.LOCAL) { DummyFirDeclaration().compose() } else { (namedFunction.transformChildren(this, data) as FirNamedFunction).compose() @@ -70,11 +70,11 @@ class FirPartialTransformer( } } - override fun transformVariable(variable: FirVariable, data: Nothing?): CompositeTransformResult { + override fun > transformVariable(variable: FirVariable, data: Nothing?): CompositeTransformResult { return if (visitVariable) { - (variable.transformChildren(this, data) as FirVariable).compose() + (variable.transformChildren(this, data) as FirVariable<*>).compose() } else { - DummyFirVariable().compose() + DummyFirVariable().compose() } }