Do not write version requirements for suspend functions
Previous attempt was at6807ed6642, but it was reverted in7771e5914d(see that commit for the explanation). Now it should be fine to remove these version requirements. No issue reported because it's mostly not a user-visible change. The main effect is that it reduces differences in metadata between K1 and K2, namely it fixes the ValueClass.kt kotlinp test.
This commit is contained in:
committed by
Space Team
parent
06e370b012
commit
9c03dcd230
+2
-22
@@ -478,10 +478,6 @@ class FirElementSerializer private constructor(
|
||||
versionRequirementTable?.run {
|
||||
builder.addAllVersionRequirement(serializeVersionRequirements(property))
|
||||
|
||||
if (property.isSuspendOrHasSuspendTypesInSignature()) {
|
||||
builder.addVersionRequirement(writeVersionRequirementDependingOnCoroutinesVersion())
|
||||
}
|
||||
|
||||
if (local.metDefinitelyNotNullType) {
|
||||
builder.addVersionRequirement(writeVersionRequirement(LanguageFeature.DefinitelyNonNullableTypes))
|
||||
}
|
||||
@@ -573,10 +569,6 @@ class FirElementSerializer private constructor(
|
||||
versionRequirementTable?.run {
|
||||
builder.addAllVersionRequirement(serializeVersionRequirements(function))
|
||||
|
||||
if (function.isSuspendOrHasSuspendTypesInSignature()) {
|
||||
builder.addVersionRequirement(writeVersionRequirementDependingOnCoroutinesVersion())
|
||||
}
|
||||
|
||||
if (local.metDefinitelyNotNullType) {
|
||||
builder.addVersionRequirement(writeVersionRequirement(LanguageFeature.DefinitelyNonNullableTypes))
|
||||
}
|
||||
@@ -679,10 +671,6 @@ class FirElementSerializer private constructor(
|
||||
versionRequirementTable?.run {
|
||||
builder.addAllVersionRequirement(serializeVersionRequirements(constructor))
|
||||
|
||||
if (constructor.isSuspendOrHasSuspendTypesInSignature()) {
|
||||
builder.addVersionRequirement(writeVersionRequirementDependingOnCoroutinesVersion())
|
||||
}
|
||||
|
||||
if (local.metDefinitelyNotNullType) {
|
||||
builder.addVersionRequirement(writeVersionRequirement(LanguageFeature.DefinitelyNonNullableTypes))
|
||||
}
|
||||
@@ -1062,11 +1050,6 @@ class FirElementSerializer private constructor(
|
||||
|
||||
private fun useTypeTable(): Boolean = extension.shouldUseTypeTable()
|
||||
|
||||
private fun FirCallableDeclaration.isSuspendOrHasSuspendTypesInSignature(): Boolean {
|
||||
// TODO (types in signature)
|
||||
return this.isSuspend
|
||||
}
|
||||
|
||||
private fun MutableVersionRequirementTable.serializeVersionRequirements(container: FirAnnotationContainer): List<Int> =
|
||||
serializeVersionRequirements(container.annotations)
|
||||
|
||||
@@ -1082,9 +1065,6 @@ class FirElementSerializer private constructor(
|
||||
return writeLanguageVersionRequirement(languageFeature, this)
|
||||
}
|
||||
|
||||
private fun MutableVersionRequirementTable.writeVersionRequirementDependingOnCoroutinesVersion(): Int =
|
||||
writeVersionRequirement(LanguageFeature.ReleaseCoroutines)
|
||||
|
||||
private fun serializeVersionRequirementFromRequireKotlin(annotation: FirAnnotation): ProtoBuf.VersionRequirement.Builder? {
|
||||
val argumentMapping = annotation.argumentMapping.mapping
|
||||
|
||||
@@ -1240,7 +1220,7 @@ class FirElementSerializer private constructor(
|
||||
return serializer
|
||||
}
|
||||
|
||||
fun writeLanguageVersionRequirement(
|
||||
private fun writeLanguageVersionRequirement(
|
||||
languageFeature: LanguageFeature,
|
||||
versionRequirementTable: MutableVersionRequirementTable
|
||||
): Int {
|
||||
@@ -1252,7 +1232,7 @@ class FirElementSerializer private constructor(
|
||||
)
|
||||
}
|
||||
|
||||
fun writeVersionRequirement(
|
||||
private fun writeVersionRequirement(
|
||||
major: Int,
|
||||
minor: Int,
|
||||
patch: Int,
|
||||
|
||||
Reference in New Issue
Block a user