K2: add package FQ name to ClassId of anonymous objects
This is needed because in order to figure out which declarations are visible from anonymous objects in terms of overridability (see `FirVisibilityChecker.isVisibleForOverriding`), we need to get the package name of that anonymous object, because there's package-private visibility on JVM. #KT-62017 Fixed
This commit is contained in:
committed by
Space Team
parent
59a9855373
commit
5cae87b263
+2
-2
@@ -19,8 +19,8 @@ import org.jetbrains.kotlin.fir.expressions.FirQualifiedAccessExpression
|
||||
import org.jetbrains.kotlin.fir.java.jvmDefaultModeState
|
||||
import org.jetbrains.kotlin.fir.references.toResolvedCallableSymbol
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.ANONYMOUS_CLASS_ID
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||
import org.jetbrains.kotlin.name.SpecialNames.ANONYMOUS_FQ_NAME
|
||||
|
||||
object FirInterfaceDefaultMethodCallChecker : FirQualifiedAccessExpressionChecker() {
|
||||
override fun check(expression: FirQualifiedAccessExpression, context: CheckerContext, reporter: DiagnosticReporter) {
|
||||
@@ -51,7 +51,7 @@ object FirInterfaceDefaultMethodCallChecker : FirQualifiedAccessExpressionChecke
|
||||
|
||||
private fun CheckerContext.findContainingMember(): FirCallableDeclaration? {
|
||||
return findClosest {
|
||||
(it is FirSimpleFunction && it.symbol.callableId.classId != ANONYMOUS_CLASS_ID) || it is FirProperty
|
||||
(it is FirSimpleFunction && it.symbol.callableId.classId?.relativeClassName != ANONYMOUS_FQ_NAME) || it is FirProperty
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user