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(
|
FirErrorNamedReference(
|
||||||
namedReference.session,
|
namedReference.session,
|
||||||
namedReference.psi,
|
namedReference.psi,
|
||||||
"Inapplicable($applicability): ${candidates.map { describeSymbol(it.symbol) }}"
|
"Inapplicable($applicability): ${candidates.map { describeSymbol(it.symbol) }}",
|
||||||
|
namedReference.name
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
candidates.size == 1 -> FirNamedReferenceWithCandidate(
|
candidates.size == 1 -> FirNamedReferenceWithCandidate(
|
||||||
@@ -385,7 +386,8 @@ open class FirBodyResolveTransformer(val session: FirSession, val implicitTypeOn
|
|||||||
name, candidates.single()
|
name, candidates.single()
|
||||||
)
|
)
|
||||||
else -> FirErrorNamedReference(
|
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.FirElseIfTrueCondition
|
||||||
import org.jetbrains.kotlin.fir.expressions.impl.FirExpressionStub
|
import org.jetbrains.kotlin.fir.expressions.impl.FirExpressionStub
|
||||||
import org.jetbrains.kotlin.fir.expressions.impl.FirUnitExpression
|
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.ConeCallableSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeSymbol
|
import org.jetbrains.kotlin.fir.symbols.ConeClassLikeSymbol
|
||||||
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
import org.jetbrains.kotlin.fir.symbols.impl.FirFunctionSymbol
|
||||||
@@ -761,7 +762,11 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun visitNamedReference(namedReference: FirNamedReference) {
|
override fun visitNamedReference(namedReference: FirNamedReference) {
|
||||||
print("${namedReference.name}#")
|
if (namedReference is FirErrorNamedReference) {
|
||||||
|
print("<${namedReference.errorReason}>#")
|
||||||
|
} else {
|
||||||
|
print("${namedReference.name}#")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun visitResolvedCallableReference(resolvedCallableReference: FirResolvedCallableReference) {
|
override fun visitResolvedCallableReference(resolvedCallableReference: FirResolvedCallableReference) {
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ import org.jetbrains.kotlin.name.Name
|
|||||||
class FirErrorNamedReference(
|
class FirErrorNamedReference(
|
||||||
session: FirSession,
|
session: FirSession,
|
||||||
psi: PsiElement?,
|
psi: PsiElement?,
|
||||||
val errorReason: String
|
val errorReason: String,
|
||||||
) : FirAbstractElement(session, psi), FirNamedReference {
|
|
||||||
override val name: Name = Name.special("<$errorReason>")
|
override val name: Name = Name.special("<$errorReason>")
|
||||||
}
|
) : FirAbstractElement(session, psi), FirNamedReference
|
||||||
Reference in New Issue
Block a user