[FIR] Refactor effective visibility calculation

Before this commit, we had effective visibility as a part of FIR status,
so it was integrated into the full pipeline. In this commit,
we introduced "effective visibility as a service" which is now used
only by exposed visibility checker. This allows us to make the thing
universal for all FIR nodes, including nodes for Java / deserialized.
This commit is contained in:
Nick
2020-07-15 17:23:21 +03:00
committed by Mikhail Glukhikh
parent b15e32936e
commit 7145caca40
95 changed files with 713 additions and 484 deletions
@@ -42,7 +42,6 @@ class AllOpenNestedClassGenerator(session: FirSession) : FirDeclarationGeneratio
origin = FirDeclarationOrigin.Plugin(key)
status = FirResolvedDeclarationStatusImpl(
Visibilities.PRIVATE,
FirEffectiveVisibilityImpl.Private,
Modality.FINAL
).apply {
isInner = true
@@ -68,7 +67,6 @@ class AllOpenNestedClassGenerator(session: FirSession) : FirDeclarationGeneratio
}
status = FirResolvedDeclarationStatusImpl(
Visibilities.PUBLIC,
FirEffectiveVisibilityImpl.Public,
Modality.FINAL
)
symbol = FirConstructorSymbol(CallableId(classId, classId.shortClassName))
@@ -81,7 +79,6 @@ class AllOpenNestedClassGenerator(session: FirSession) : FirDeclarationGeneratio
returnTypeRef = session.builtinTypes.intType
status = FirResolvedDeclarationStatusImpl(
Visibilities.PUBLIC,
FirEffectiveVisibilityImpl.Public,
Modality.FINAL
)
name = Name.identifier("hello")
@@ -39,7 +39,6 @@ class AllOpenRecursiveNestedClassGenerator(session: FirSession) : FirDeclaration
origin = FirDeclarationOrigin.Plugin(key)
status = FirResolvedDeclarationStatusImpl(
Visibilities.PUBLIC,
FirEffectiveVisibilityImpl.Public,
Modality.FINAL
)
classKind = ClassKind.CLASS
@@ -38,7 +38,6 @@ class AllOpenTopLevelDeclarationsGenerator(session: FirSession) : FirDeclaration
origin = FirDeclarationOrigin.Plugin(key)
status = FirResolvedDeclarationStatusImpl(
Visibilities.PUBLIC,
FirEffectiveVisibilityImpl.Public,
Modality.FINAL
)
classKind = ClassKind.OBJECT
@@ -58,7 +57,6 @@ class AllOpenTopLevelDeclarationsGenerator(session: FirSession) : FirDeclaration
returnTypeRef = session.builtinTypes.intType
status = FirResolvedDeclarationStatusImpl(
Visibilities.PUBLIC,
FirEffectiveVisibilityImpl.Public,
Modality.FINAL
)
name = Name.identifier("hello")