Write "hasEnumEntries" flag into metadata when feature enabled
^KT-53929 Fixed
This commit is contained in:
@@ -284,7 +284,10 @@ public class ClosureCodegen extends MemberCodegen<KtElement> {
|
||||
v.getSerializationBindings().put(METHOD_FOR_FUNCTION, freeLambdaDescriptor, method);
|
||||
|
||||
DescriptorSerializer serializer =
|
||||
DescriptorSerializer.createForLambda(new JvmSerializerExtension(v.getSerializationBindings(), state));
|
||||
DescriptorSerializer.createForLambda(
|
||||
new JvmSerializerExtension(v.getSerializationBindings(), state),
|
||||
state.getLanguageVersionSettings()
|
||||
);
|
||||
|
||||
ProtoBuf.Function.Builder builder = serializer.functionProto(freeLambdaDescriptor);
|
||||
if (builder == null) return;
|
||||
|
||||
@@ -129,7 +129,8 @@ public class ImplementationBodyCodegen extends ClassBodyCodegen {
|
||||
descriptor, extension,
|
||||
parentCodegen instanceof ImplementationBodyCodegen
|
||||
? ((ImplementationBodyCodegen) parentCodegen).serializer
|
||||
: DescriptorSerializer.createTopLevel(extension, null),
|
||||
: DescriptorSerializer.createTopLevel(extension, state.getLanguageVersionSettings(), null),
|
||||
state.getLanguageVersionSettings(),
|
||||
state.getProject()
|
||||
);
|
||||
|
||||
|
||||
@@ -127,7 +127,8 @@ public class PackagePartCodegen extends MemberCodegen<KtFile> {
|
||||
List<MemberDescriptor> members = CodegenUtil.getMemberDescriptorsToGenerate(codegen.element, codegen.bindingContext);
|
||||
|
||||
JvmSerializerExtension extension = new JvmSerializerExtension(codegen.v.getSerializationBindings(), codegen.state);
|
||||
DescriptorSerializer serializer = DescriptorSerializer.createTopLevel(extension, null);
|
||||
DescriptorSerializer serializer = DescriptorSerializer.createTopLevel(
|
||||
extension, codegen.state.getLanguageVersionSettings(), null);
|
||||
ProtoBuf.Package.Builder builder = serializer.packagePartProto(codegen.element.getPackageFqName(), members);
|
||||
extension.serializeJvmPackage(builder, packagePartType);
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import org.jetbrains.kotlin.codegen.context.ScriptContext
|
||||
import org.jetbrains.kotlin.codegen.serialization.JvmSerializationBindings.METHOD_FOR_FUNCTION
|
||||
import org.jetbrains.kotlin.codegen.serialization.JvmSerializerExtension
|
||||
import org.jetbrains.kotlin.codegen.state.GenerationState
|
||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||
import org.jetbrains.kotlin.descriptors.ClassDescriptor
|
||||
import org.jetbrains.kotlin.descriptors.ScriptDescriptor
|
||||
import org.jetbrains.kotlin.load.java.JvmAnnotationNames
|
||||
@@ -68,7 +69,10 @@ class ScriptCodegen private constructor(
|
||||
override fun generateSyntheticPartsAfterBody() {}
|
||||
|
||||
override fun generateKotlinMetadataAnnotation() {
|
||||
val serializer = DescriptorSerializer.create(scriptDescriptor, JvmSerializerExtension(v.serializationBindings, state), null)
|
||||
val serializer = DescriptorSerializer.create(
|
||||
scriptDescriptor, JvmSerializerExtension(v.serializationBindings, state), null,
|
||||
state.configuration.languageVersionSettings,
|
||||
)
|
||||
val classProto = serializer.classProto(scriptDescriptor).build()
|
||||
writeKotlinMetadata(v, state, KotlinClassHeader.Kind.CLASS, false, JvmAnnotationNames.METADATA_SCRIPT_FLAG) { av ->
|
||||
DescriptorAsmUtil.writeAnnotationData(av, serializer, classProto)
|
||||
|
||||
@@ -7,6 +7,7 @@ package org.jetbrains.kotlin.codegen
|
||||
|
||||
import org.jetbrains.kotlin.backend.common.output.OutputFile
|
||||
import org.jetbrains.kotlin.codegen.state.GenerationState
|
||||
import org.jetbrains.kotlin.config.languageVersionSettings
|
||||
import org.jetbrains.kotlin.descriptors.findClassAcrossModuleDependencies
|
||||
import org.jetbrains.kotlin.load.kotlin.loadModuleMapping
|
||||
import org.jetbrains.kotlin.metadata.deserialization.BinaryVersion
|
||||
@@ -49,7 +50,9 @@ fun JvmModuleProtoBuf.Module.Builder.addDataFromCompiledModule(
|
||||
}
|
||||
}.orEmpty()
|
||||
|
||||
val serializer = DescriptorSerializer.createTopLevel(JvmOptionalAnnotationSerializerExtension(stringTable))
|
||||
val serializer = DescriptorSerializer.createTopLevel(
|
||||
JvmOptionalAnnotationSerializerExtension(stringTable), state.configuration.languageVersionSettings,
|
||||
)
|
||||
for (descriptor in optionalAnnotationClassDescriptors) {
|
||||
addOptionalAnnotationClass(serializer.classProto(descriptor))
|
||||
}
|
||||
|
||||
@@ -702,7 +702,9 @@ class CoroutineCodegenForNamedFunction private constructor(
|
||||
override fun generateKotlinMetadataAnnotation() {
|
||||
val publicAbi = InlineUtil.isInPublicInlineScope(classDescriptor)
|
||||
writeKotlinMetadata(v, state, KotlinClassHeader.Kind.SYNTHETIC_CLASS, publicAbi, 0) { av ->
|
||||
val serializer = DescriptorSerializer.createForLambda(JvmSerializerExtension(v.serializationBindings, state))
|
||||
val serializer = DescriptorSerializer.createForLambda(
|
||||
JvmSerializerExtension(v.serializationBindings, state), state.languageVersionSettings,
|
||||
)
|
||||
val functionProto =
|
||||
serializer.functionProto(
|
||||
createFreeFakeLambdaDescriptor(suspendFunctionJvmView, state.typeApproximator)
|
||||
|
||||
+1
-1
@@ -143,7 +143,7 @@ class JvmSerializerExtension @JvmOverloads constructor(
|
||||
|
||||
for (localVariable in localVariables) {
|
||||
val propertyDescriptor = createFreeFakeLocalPropertyDescriptor(localVariable, approximator)
|
||||
val serializer = DescriptorSerializer.createForLambda(this)
|
||||
val serializer = DescriptorSerializer.createForLambda(this, languageVersionSettings)
|
||||
proto.addExtension(extension, serializer.propertyProto(propertyDescriptor)?.build() ?: continue)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user