FIR: keep names for error references
This commit is contained in:
committed by
Mikhail Glukhikh
parent
5bf41594ec
commit
32e941cb53
+4
-2
@@ -377,7 +377,8 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn
|
||||
FirErrorNamedReference(
|
||||
namedReference.session,
|
||||
namedReference.psi,
|
||||
"Inapplicable($applicability): ${candidates.map { describeSymbol(it.symbol) }}"
|
||||
"Inapplicable($applicability): ${candidates.map { describeSymbol(it.symbol) }}",
|
||||
namedReference.name
|
||||
)
|
||||
}
|
||||
candidates.size == 1 -> FirNamedReferenceWithCandidate(
|
||||
@@ -385,7 +386,8 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn
|
||||
name, candidates.single()
|
||||
)
|
||||
else -> FirErrorNamedReference(
|
||||
namedReference.session, namedReference.psi, "Ambiguity: $name, ${candidates.map { describeSymbol(it.symbol) }}"
|
||||
namedReference.session, namedReference.psi, "Ambiguity: $name, ${candidates.map { describeSymbol(it.symbol) }}",
|
||||
namedReference.name
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,6 +13,7 @@ import org.jetbrains.kotlin.fir.expressions.*
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirElseIfTrueCondition
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirExpressionStub
|
||||
import org.jetbrains.kotlin.fir.expressions.impl.FirUnitExpression
|
||||
import org.jetbrains.kotlin.fir.references.FirErrorNamedReference
|
||||
import org.jetbrains.kotlin.fir.symbols.ConeCallableSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
||||
@@ -761,7 +762,11 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
||||
}
|
||||
|
||||
override fun visitNamedReference(namedReference: FirNamedReference) {
|
||||
print("${namedReference.name}#")
|
||||
if (namedReference is FirErrorNamedReference) {
|
||||
print("<${namedReference.errorReason}>#")
|
||||
} else {
|
||||
print("${namedReference.name}#")
|
||||
}
|
||||
}
|
||||
|
||||
override fun visitResolvedCallableReference(resolvedCallableReference: FirResolvedCallableReference) {
|
||||
|
||||
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.name.Name
|
||||
class FirErrorNamedReference(
|
||||
session: FirSession,
|
||||
psi: PsiElement?,
|
||||
val errorReason: String
|
||||
) : FirAbstractElement(session, psi), FirNamedReference {
|
||||
val errorReason: String,
|
||||
override val name: Name = Name.special("<$errorReason>")
|
||||
}
|
||||
) : FirAbstractElement(session, psi), FirNamedReference
|
||||
Reference in New Issue
Block a user