[FIR] Set publishedApiEffectiveVisibility on deserialized declarations
#KT-58641 Fixed
This commit is contained in:
committed by
Space Team
parent
2581139b82
commit
ee91ee9403
+4
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.fir.declarations.utils.moduleName
|
||||
import org.jetbrains.kotlin.fir.declarations.utils.sourceElement
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.getRegularClassSymbolByClassId
|
||||
import org.jetbrains.kotlin.fir.resolve.providers.symbolProvider
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.setLazyPublishedVisibility
|
||||
import org.jetbrains.kotlin.fir.scopes.FirScopeProvider
|
||||
import org.jetbrains.kotlin.fir.symbols.ConeTypeParameterLookupTag
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirEnumEntrySymbol
|
||||
@@ -114,6 +115,7 @@ fun deserializeClassToSymbol(
|
||||
context.annotationDeserializer.inheritAnnotationInfo(it.annotationDeserializer)
|
||||
}
|
||||
}
|
||||
|
||||
buildRegularClass {
|
||||
this.moduleData = moduleData
|
||||
this.origin = origin
|
||||
@@ -242,6 +244,8 @@ fun deserializeClassToSymbol(
|
||||
if (!Flags.HAS_ENUM_ENTRIES.get(flags)) {
|
||||
hasNoEnumEntriesAttr = true
|
||||
}
|
||||
|
||||
setLazyPublishedVisibility(session)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+6
@@ -20,6 +20,7 @@ import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.expressions.FirExpression
|
||||
import org.jetbrains.kotlin.fir.expressions.builder.buildExpressionStub
|
||||
import org.jetbrains.kotlin.fir.resolve.defaultType
|
||||
import org.jetbrains.kotlin.fir.resolve.transformers.setLazyPublishedVisibility
|
||||
import org.jetbrains.kotlin.fir.symbols.FirBasedSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.toEffectiveVisibility
|
||||
@@ -467,6 +468,9 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
||||
proto.contextReceiverTypes(c.typeTable).mapTo(contextReceivers, ::loadContextReceiver)
|
||||
}.apply {
|
||||
versionRequirementsTable = c.versionRequirementTable
|
||||
setLazyPublishedVisibility(c.session)
|
||||
getter?.setLazyPublishedVisibility(annotations, this, c.session)
|
||||
setter?.setLazyPublishedVisibility(annotations, this, c.session)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -552,6 +556,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
||||
proto.contextReceiverTypes(c.typeTable).mapTo(contextReceivers, ::loadContextReceiver)
|
||||
}.apply {
|
||||
versionRequirementsTable = c.versionRequirementTable
|
||||
setLazyPublishedVisibility(c.session)
|
||||
}
|
||||
if (proto.hasContract()) {
|
||||
val contractDeserializer = if (proto.typeParameterList.isEmpty()) this.contractDeserializer else FirContractDeserializer(local)
|
||||
@@ -635,6 +640,7 @@ class FirMemberDeserializer(private val c: FirDeserializationContext) {
|
||||
}.build().apply {
|
||||
containingClassForStaticMemberAttr = c.dispatchReceiver!!.lookupTag
|
||||
versionRequirementsTable = c.versionRequirementTable
|
||||
setLazyPublishedVisibility(c.session)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user