Resolve converter errors after merge (light tree to FIR)
This commit is contained in:
committed by
Mikhail Glukhikh
parent
86097bdcce
commit
ef535a2d85
+3
-2
@@ -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<FirProperty>
|
||||
) {
|
||||
val symbol = FirFunctionSymbol(
|
||||
val symbol = FirNamedFunctionSymbol(
|
||||
CallableId(
|
||||
ClassNameUtil.packageFqName,
|
||||
ClassNameUtil.className,
|
||||
|
||||
+5
-5
@@ -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<FirVariable>()
|
||||
val entries = mutableListOf<FirVariable<*>>()
|
||||
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(),
|
||||
|
||||
+2
-2
@@ -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<WhenEntry>()
|
||||
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)
|
||||
|
||||
+1
-1
@@ -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 {
|
||||
|
||||
+1
-1
@@ -15,7 +15,7 @@ import org.jetbrains.kotlin.fir.lightTree.converter.utils.generateDestructuringB
|
||||
|
||||
data class DestructuringDeclaration(
|
||||
val isVar: Boolean,
|
||||
val entries: List<FirVariable>,
|
||||
val entries: List<FirVariable<*>>,
|
||||
val initializer: FirExpression?
|
||||
) {
|
||||
fun toFirDestructingDeclaration(session: FirSession): FirExpression {
|
||||
|
||||
+3
-3
@@ -33,7 +33,7 @@ class DummyFirStatement(
|
||||
session: FirSession = object : FirSessionBase(null) {}
|
||||
) : FirUnknownTypeExpression(session, psi), DummyElement
|
||||
|
||||
class DummyFirVariable(
|
||||
class DummyFirVariable<F: FirVariable<F>>(
|
||||
override val psi: PsiElement? = null,
|
||||
override val session: FirSession = object : FirSessionBase(null) {},
|
||||
override val annotations: List<FirAnnotationCall> = 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<F> = FirVariableSymbol(name),
|
||||
override var delegate: FirExpression? = null
|
||||
) : FirVariable, DummyElement {
|
||||
) : FirVariable<F>, DummyElement {
|
||||
override fun <D> transformReturnTypeRef(transformer: FirTransformer<D>, data: D) {
|
||||
returnTypeRef = returnTypeRef.transformSingle(transformer, data)
|
||||
}
|
||||
|
||||
+4
-4
@@ -52,7 +52,7 @@ class FirPartialTransformer(
|
||||
}
|
||||
|
||||
override fun transformNamedFunction(namedFunction: FirNamedFunction, data: Nothing?): CompositeTransformResult<FirDeclaration> {
|
||||
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<FirDeclaration> {
|
||||
override fun <F : FirVariable<F>> transformVariable(variable: FirVariable<F>, data: Nothing?): CompositeTransformResult<FirDeclaration> {
|
||||
return if (visitVariable) {
|
||||
(variable.transformChildren(this, data) as FirVariable).compose()
|
||||
(variable.transformChildren(this, data) as FirVariable<*>).compose()
|
||||
} else {
|
||||
DummyFirVariable().compose()
|
||||
DummyFirVariable<F>().compose()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user