[FIR] Add isVisible check to resolveRootPartOfQualifier
This commit is contained in:
@@ -47,6 +47,17 @@ fun BodyResolveComponents.resolveRootPartOfQualifier(
|
|||||||
for (scope in createCurrentScopeList()) {
|
for (scope in createCurrentScopeList()) {
|
||||||
scope.getSingleClassifier(name)?.let {
|
scope.getSingleClassifier(name)?.let {
|
||||||
if (it is FirRegularClassSymbol) {
|
if (it is FirRegularClassSymbol) {
|
||||||
|
val isVisible = session.visibilityChecker.isVisible(
|
||||||
|
it.fir,
|
||||||
|
session,
|
||||||
|
file,
|
||||||
|
containingDeclarations,
|
||||||
|
null,
|
||||||
|
false,
|
||||||
|
)
|
||||||
|
if (!isVisible) {
|
||||||
|
return@let
|
||||||
|
}
|
||||||
val classId = it.classId
|
val classId = it.classId
|
||||||
return buildResolvedQualifier {
|
return buildResolvedQualifier {
|
||||||
this.source = source
|
this.source = source
|
||||||
|
|||||||
@@ -3,7 +3,9 @@
|
|||||||
// FILE: f11.kt
|
// FILE: f11.kt
|
||||||
package api
|
package api
|
||||||
|
|
||||||
interface ApplicabilityResult
|
interface ApplicabilityResult {
|
||||||
|
object Inapplicable : ApplicabilityResult {}
|
||||||
|
}
|
||||||
|
|
||||||
// FILE: f12.kt
|
// FILE: f12.kt
|
||||||
package api
|
package api
|
||||||
@@ -28,3 +30,10 @@ class NullArgumentMapping : ArgumentMapping {
|
|||||||
override fun highlightingApplicabilities(): ApplicabilityResult = object : ApplicabilityResult {
|
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 equals(/*0*/ other: kotlin.Any?): kotlin.Boolean
|
||||||
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
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 {
|
public interface ArgumentMapping {
|
||||||
@@ -39,5 +46,13 @@ package impl {
|
|||||||
public open override /*1*/ fun highlightingApplicabilities(): api.ApplicabilityResult
|
public open override /*1*/ fun highlightingApplicabilities(): api.ApplicabilityResult
|
||||||
public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String
|
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
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user