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:
Alexander Udalov
2023-09-18 17:00:08 +02:00
committed by Space Team
parent 59a9855373
commit 5cae87b263
28 changed files with 156 additions and 90 deletions
@@ -653,7 +653,7 @@ class LightTreeRawFirDeclarationBuilder(
moduleData = baseModuleData
classKind = ClassKind.CLASS
scopeProvider = baseScopeProvider
symbol = FirAnonymousObjectSymbol()
symbol = FirAnonymousObjectSymbol(context.packageFqName)
status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL)
context.appendOuterTypeParameters(ignoreLastLevel = false, typeParameters)
val delegatedSelfType = objectLiteral.toDelegatedSelfType(this)
@@ -777,7 +777,7 @@ class LightTreeRawFirDeclarationBuilder(
origin = FirDeclarationOrigin.Source
classKind = ClassKind.ENUM_ENTRY
scopeProvider = baseScopeProvider
symbol = FirAnonymousObjectSymbol()
symbol = FirAnonymousObjectSymbol(context.packageFqName)
status = FirDeclarationStatusImpl(Visibilities.Local, Modality.FINAL)
val enumClassWrapper = ClassWrapper(
modifiers,