[FIR] Add isVisible check to resolveRootPartOfQualifier

This commit is contained in:
Nikolay Lunyak
2021-11-04 15:52:11 +00:00
committed by Space
parent ae50d52131
commit 4a3a621196
3 changed files with 36 additions and 1 deletions
@@ -47,6 +47,17 @@ fun BodyResolveComponents.resolveRootPartOfQualifier(
for (scope in createCurrentScopeList()) {
scope.getSingleClassifier(name)?.let {
if (it is FirRegularClassSymbol) {
val isVisible = session.visibilityChecker.isVisible(
it.fir,
session,
file,
containingDeclarations,
null,
false,
)
if (!isVisible) {
return@let
}
val classId = it.classId
return buildResolvedQualifier {
this.source = source
@@ -3,7 +3,9 @@
// FILE: f11.kt
package api
interface ApplicabilityResult
interface ApplicabilityResult {
object Inapplicable : ApplicabilityResult {}
}
// FILE: f12.kt
package api
@@ -28,3 +30,10 @@ class NullArgumentMapping : ArgumentMapping {
override fun highlightingApplicabilities(): ApplicabilityResult = object : ApplicabilityResult {
}
}
class PositionalArgumentMapping : ArgumentMapping {
// The return type is now resolved properly v
override fun highlightingApplicabilities(): ApplicabilityResult =
// However, here v we still have a problem
ApplicabilityResult.Inapplicable
}
@@ -7,6 +7,13 @@ package api {
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
public object Inapplicable : api.ApplicabilityResult {
private constructor Inapplicable()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}
public interface ArgumentMapping {
@@ -39,5 +46,13 @@ package impl {
public open override /*1*/ fun highlightingApplicabilities(): api.ApplicabilityResult
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
public final class PositionalArgumentMapping : api.ArgumentMapping {
public constructor PositionalArgumentMapping()
public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
public open override /*1*/ fun highlightingApplicabilities(): api.ApplicabilityResult
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
}
}