Remove ClassBuilderMode.ABI
It was a special mode used only by the removed legacy implementation of jvm-abi-gen.
This commit is contained in:
committed by
Space Team
parent
9f269b83aa
commit
6595275ba7
@@ -49,16 +49,6 @@ public class ClassBuilderMode {
|
||||
/* generateMultiFileFacadePartClasses = */ true,
|
||||
/* mightBeIncorrectCode = */ false);
|
||||
|
||||
/**
|
||||
* ABI for compilation (non-private signatures + inline function bodies)
|
||||
*/
|
||||
public final static ClassBuilderMode ABI = new ClassBuilderMode(
|
||||
/* bodies = */ true,
|
||||
/* metadata = */ true,
|
||||
/* sourceRetention = */ false,
|
||||
/* generateMultiFileFacadePartClasses = */ true,
|
||||
/* mightBeIncorrectCode = */ false);
|
||||
|
||||
/**
|
||||
* Generating light classes: Only function signatures
|
||||
*/
|
||||
|
||||
-18
@@ -13,7 +13,6 @@ import org.jetbrains.kotlin.codegen.serialization.JvmSerializationBindings.*
|
||||
import org.jetbrains.kotlin.codegen.state.GenerationState
|
||||
import org.jetbrains.kotlin.codegen.state.KotlinTypeMapperBase
|
||||
import org.jetbrains.kotlin.config.JvmDefaultMode
|
||||
import org.jetbrains.kotlin.config.LanguageFeature
|
||||
import org.jetbrains.kotlin.descriptors.*
|
||||
import org.jetbrains.kotlin.load.java.DescriptorsJvmAbiUtil
|
||||
import org.jetbrains.kotlin.load.java.lazy.types.RawTypeImpl
|
||||
@@ -29,7 +28,6 @@ import org.jetbrains.kotlin.protobuf.GeneratedMessageLite
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils
|
||||
import org.jetbrains.kotlin.resolve.DescriptorUtils.isInterface
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.classId
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.isEffectivelyPrivateApi
|
||||
import org.jetbrains.kotlin.resolve.descriptorUtil.nonSourceAnnotations
|
||||
import org.jetbrains.kotlin.resolve.jvm.annotations.hasJvmDefaultNoCompatibilityAnnotation
|
||||
import org.jetbrains.kotlin.resolve.jvm.annotations.hasJvmDefaultWithCompatibilityAnnotation
|
||||
@@ -64,22 +62,6 @@ class JvmSerializerExtension @JvmOverloads constructor(
|
||||
private val useOldManglingScheme = state.useOldManglingSchemeForFunctionsWithInlineClassesInSignatures
|
||||
|
||||
override fun shouldUseTypeTable(): Boolean = useTypeTable
|
||||
override fun shouldSerializeFunction(descriptor: FunctionDescriptor): Boolean {
|
||||
return classBuilderMode != ClassBuilderMode.ABI || descriptor.visibility != DescriptorVisibilities.PRIVATE
|
||||
}
|
||||
|
||||
override fun shouldSerializeProperty(descriptor: PropertyDescriptor): Boolean {
|
||||
return classBuilderMode != ClassBuilderMode.ABI || descriptor.visibility != DescriptorVisibilities.PRIVATE
|
||||
}
|
||||
|
||||
override fun shouldSerializeTypeAlias(descriptor: TypeAliasDescriptor): Boolean {
|
||||
// TODO: do not serialize private type aliases in ABI class builder mode once KT-17229 is fixed.
|
||||
return true
|
||||
}
|
||||
|
||||
override fun shouldSerializeNestedClass(descriptor: ClassDescriptor): Boolean {
|
||||
return classBuilderMode != ClassBuilderMode.ABI || !descriptor.isEffectivelyPrivateApi
|
||||
}
|
||||
|
||||
override fun serializeClass(
|
||||
descriptor: ClassDescriptor,
|
||||
|
||||
+4
-11
@@ -32,7 +32,10 @@ import org.jetbrains.kotlin.fir.serialization.constant.EnumValue
|
||||
import org.jetbrains.kotlin.fir.serialization.constant.IntValue
|
||||
import org.jetbrains.kotlin.fir.serialization.constant.StringValue
|
||||
import org.jetbrains.kotlin.fir.serialization.constant.toConstantValue
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.*
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirCallableSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirClassifierSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirRegularClassSymbol
|
||||
import org.jetbrains.kotlin.fir.symbols.impl.FirTypeAliasSymbol
|
||||
import org.jetbrains.kotlin.fir.types.*
|
||||
import org.jetbrains.kotlin.fir.types.builder.buildResolvedTypeRef
|
||||
import org.jetbrains.kotlin.fir.types.impl.ConeClassLikeTypeImpl
|
||||
@@ -195,10 +198,6 @@ class FirElementSerializer private constructor(
|
||||
if (nestedClassifier is FirTypeAliasSymbol) {
|
||||
typeAliasProto(nestedClassifier.fir)?.let { builder.addTypeAlias(it) }
|
||||
} else if (nestedClassifier is FirRegularClassSymbol) {
|
||||
if (!extension.shouldSerializeNestedClass(nestedClassifier.fir)) {
|
||||
continue
|
||||
}
|
||||
|
||||
builder.addNestedClassName(getSimpleNameIndex(nestedClassifier.name))
|
||||
}
|
||||
}
|
||||
@@ -311,8 +310,6 @@ class FirElementSerializer private constructor(
|
||||
(this as FirAnnotationContainer).nonSourceAnnotations(session)
|
||||
|
||||
fun propertyProto(property: FirProperty): ProtoBuf.Property.Builder? = whileAnalysing(session, property) {
|
||||
if (!extension.shouldSerializeProperty(property)) return null
|
||||
|
||||
val builder = ProtoBuf.Property.newBuilder()
|
||||
|
||||
val local = createChildSerializer(property)
|
||||
@@ -419,8 +416,6 @@ class FirElementSerializer private constructor(
|
||||
}
|
||||
|
||||
fun functionProto(function: FirFunction): ProtoBuf.Function.Builder? = whileAnalysing(session, function) {
|
||||
if (!extension.shouldSerializeFunction(function)) return null
|
||||
|
||||
val builder = ProtoBuf.Function.newBuilder()
|
||||
val simpleFunction = function as? FirSimpleFunction
|
||||
|
||||
@@ -523,8 +518,6 @@ class FirElementSerializer private constructor(
|
||||
}
|
||||
|
||||
private fun typeAliasProto(typeAlias: FirTypeAlias): ProtoBuf.TypeAlias.Builder? = whileAnalysing(session, typeAlias) {
|
||||
if (!extension.shouldSerializeTypeAlias(typeAlias)) return null
|
||||
|
||||
val builder = ProtoBuf.TypeAlias.newBuilder()
|
||||
val local = createChildSerializer(typeAlias)
|
||||
|
||||
|
||||
+1
-5
@@ -8,8 +8,8 @@ package org.jetbrains.kotlin.fir.serialization
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
import org.jetbrains.kotlin.fir.declarations.*
|
||||
import org.jetbrains.kotlin.fir.expressions.FirAnnotation
|
||||
import org.jetbrains.kotlin.fir.types.ConeFlexibleType
|
||||
import org.jetbrains.kotlin.fir.types.ConeErrorType
|
||||
import org.jetbrains.kotlin.fir.types.ConeFlexibleType
|
||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
|
||||
import org.jetbrains.kotlin.metadata.serialization.MutableVersionRequirementTable
|
||||
@@ -24,12 +24,8 @@ abstract class FirSerializerExtension {
|
||||
|
||||
val annotationSerializer by lazy { FirAnnotationSerializer(session, stringTable) }
|
||||
|
||||
open fun shouldSerializeNestedClass(nestedClass: FirRegularClass): Boolean = true
|
||||
open fun shouldSerializeTypeAlias(typeAlias: FirTypeAlias): Boolean = true
|
||||
open fun shouldUseTypeTable(): Boolean = false
|
||||
open fun shouldUseNormalizedVisibility(): Boolean = false
|
||||
abstract fun shouldSerializeFunction(function: FirFunction): Boolean
|
||||
abstract fun shouldSerializeProperty(property: FirProperty): Boolean
|
||||
|
||||
open fun serializePackage(packageFqName: FqName, proto: ProtoBuf.Package.Builder) {
|
||||
}
|
||||
|
||||
+1
-5
@@ -61,11 +61,7 @@ open class FirKLibSerializerExtension(
|
||||
override val session: FirSession,
|
||||
override val metadataVersion: BinaryVersion,
|
||||
override val stringTable: FirElementAwareSerializableStringTable
|
||||
) : FirSerializerExtension() {
|
||||
override fun shouldSerializeFunction(function: FirFunction): Boolean = true
|
||||
|
||||
override fun shouldSerializeProperty(property: FirProperty): Boolean = true
|
||||
}
|
||||
) : FirSerializerExtension()
|
||||
|
||||
class FirElementAwareSerializableStringTable() : FirElementAwareStringTable, SerializableStringTable() {
|
||||
override fun getLocalClassIdReplacement(firClass: FirClass): ClassId? = ClassId.topLevel(StandardNames.FqNames.any.toSafe())
|
||||
|
||||
-18
@@ -10,7 +10,6 @@ import org.jetbrains.kotlin.codegen.ClassBuilderMode
|
||||
import org.jetbrains.kotlin.codegen.serialization.JvmSerializationBindings
|
||||
import org.jetbrains.kotlin.codegen.state.GenerationState
|
||||
import org.jetbrains.kotlin.config.JvmDefaultMode
|
||||
import org.jetbrains.kotlin.config.LanguageVersionSettings
|
||||
import org.jetbrains.kotlin.descriptors.ClassKind
|
||||
import org.jetbrains.kotlin.descriptors.Visibilities
|
||||
import org.jetbrains.kotlin.fir.FirSession
|
||||
@@ -79,23 +78,6 @@ class FirJvmSerializerExtension(
|
||||
)
|
||||
|
||||
override fun shouldUseTypeTable(): Boolean = useTypeTable
|
||||
override fun shouldSerializeFunction(function: FirFunction): Boolean {
|
||||
return classBuilderMode != ClassBuilderMode.ABI ||
|
||||
function !is FirSimpleFunction || function.visibility != Visibilities.Private
|
||||
}
|
||||
|
||||
override fun shouldSerializeProperty(property: FirProperty): Boolean {
|
||||
return classBuilderMode != ClassBuilderMode.ABI || property.visibility != Visibilities.Private
|
||||
}
|
||||
|
||||
override fun shouldSerializeTypeAlias(typeAlias: FirTypeAlias): Boolean {
|
||||
// TODO: do not serialize private type aliases in ABI class builder mode once KT-17229 is fixed.
|
||||
return true
|
||||
}
|
||||
|
||||
override fun shouldSerializeNestedClass(nestedClass: FirRegularClass): Boolean {
|
||||
return classBuilderMode != ClassBuilderMode.ABI || nestedClass.visibility != Visibilities.Private
|
||||
}
|
||||
|
||||
override fun serializeClass(
|
||||
klass: FirClass,
|
||||
|
||||
@@ -156,10 +156,6 @@ class DescriptorSerializer private constructor(
|
||||
if (descriptor is TypeAliasDescriptor) {
|
||||
typeAliasProto(descriptor)?.let { builder.addTypeAlias(it) }
|
||||
} else {
|
||||
if (descriptor is ClassDescriptor && !extension.shouldSerializeNestedClass(descriptor)) {
|
||||
continue
|
||||
}
|
||||
|
||||
val name = getSimpleNameIndex(descriptor.name)
|
||||
if (isEnumEntry(descriptor)) {
|
||||
builder.addEnumEntry(enumEntryProto(descriptor as ClassDescriptor))
|
||||
@@ -254,8 +250,6 @@ class DescriptorSerializer private constructor(
|
||||
}
|
||||
|
||||
fun propertyProto(descriptor: PropertyDescriptor): ProtoBuf.Property.Builder? {
|
||||
if (!extension.shouldSerializeProperty(descriptor)) return null
|
||||
|
||||
val builder = ProtoBuf.Property.newBuilder()
|
||||
|
||||
val local = createChildSerializer(descriptor)
|
||||
@@ -384,8 +378,6 @@ class DescriptorSerializer private constructor(
|
||||
}
|
||||
|
||||
fun functionProto(descriptor: FunctionDescriptor): ProtoBuf.Function.Builder? {
|
||||
if (!extension.shouldSerializeFunction(descriptor)) return null
|
||||
|
||||
val builder = ProtoBuf.Function.newBuilder()
|
||||
|
||||
val local = createChildSerializer(descriptor)
|
||||
@@ -530,8 +522,6 @@ class DescriptorSerializer private constructor(
|
||||
}
|
||||
|
||||
private fun typeAliasProto(descriptor: TypeAliasDescriptor): ProtoBuf.TypeAlias.Builder? = withNewMetDefinitelyNotNullType {
|
||||
if (!extension.shouldSerializeTypeAlias(descriptor)) return null
|
||||
|
||||
val builder = ProtoBuf.TypeAlias.newBuilder()
|
||||
val local = createChildSerializer(descriptor)
|
||||
|
||||
|
||||
@@ -24,10 +24,6 @@ abstract class SerializerExtension {
|
||||
|
||||
open fun shouldUseTypeTable(): Boolean = false
|
||||
open fun shouldUseNormalizedVisibility(): Boolean = false
|
||||
open fun shouldSerializeFunction(descriptor: FunctionDescriptor): Boolean = true
|
||||
open fun shouldSerializeProperty(descriptor: PropertyDescriptor): Boolean = true
|
||||
open fun shouldSerializeTypeAlias(descriptor: TypeAliasDescriptor): Boolean = true
|
||||
open fun shouldSerializeNestedClass(descriptor: ClassDescriptor): Boolean = true
|
||||
|
||||
interface ClassMembersProducer {
|
||||
fun getCallableMembers(classDescriptor: ClassDescriptor): Collection<CallableMemberDescriptor>
|
||||
|
||||
Reference in New Issue
Block a user