Make FirNamedReferenceWithCandidate not resolved, fix receiver completion

Counting it as resolved provokes a lot of difficult to discover errors
This commit is contained in:
Mikhail Glukhikh
2019-07-12 13:32:10 +03:00
parent 08f44d4f14
commit 592cf4f4e8
14 changed files with 132 additions and 54 deletions
@@ -5,6 +5,7 @@
package org.jetbrains.kotlin.fir
import org.jetbrains.kotlin.fir.symbols.ConeSymbol
import org.jetbrains.kotlin.fir.visitors.FirVisitor
import org.jetbrains.kotlin.name.Name
@@ -12,6 +13,8 @@ import org.jetbrains.kotlin.name.Name
interface FirNamedReference : FirReference {
val name: Name
val candidateSymbol: ConeSymbol? get() = null
override fun <R, D> accept(visitor: FirVisitor<R, D>, data: D): R =
visitor.visitNamedReference(this, data)
}
@@ -783,10 +783,18 @@ class FirRenderer(builder: StringBuilder) : FirVisitorVoid() {
}
override fun visitNamedReference(namedReference: FirNamedReference) {
if (namedReference is FirErrorNamedReference) {
print("<${namedReference.errorReason}>#")
} else {
print("${namedReference.name}#")
val symbol = namedReference.candidateSymbol
when {
symbol != null -> {
print("R?C|")
if (symbol is ConeCallableSymbol)
print(symbol.callableId)
else if (symbol is ConeClassLikeSymbol)
print(symbol.classId)
print("|")
}
namedReference is FirErrorNamedReference -> print("<${namedReference.errorReason}>#")
else -> print("${namedReference.name}#")
}
}
@@ -12,7 +12,7 @@ import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.fir.symbols.ConeSymbol
import org.jetbrains.kotlin.name.Name
open class FirResolvedCallableReferenceImpl(
class FirResolvedCallableReferenceImpl(
session: FirSession,
psi: PsiElement?,
override val name: Name,
@@ -11,7 +11,7 @@ import org.jetbrains.kotlin.fir.FirNamedReference
import org.jetbrains.kotlin.fir.FirSession
import org.jetbrains.kotlin.name.Name
class FirSimpleNamedReference(
open class FirSimpleNamedReference(
session: FirSession,
psi: PsiElement?,
override val name: Name