IC mangling: Use old mangling scheme when LV is 1.3

Add integration test to check, that nothing is broken with LV 1.3.
This commit is contained in:
Ilmir Usmanov
2020-11-18 03:02:02 +01:00
parent 7ee35af721
commit c22071566e
8 changed files with 446 additions and 9 deletions
@@ -241,9 +241,7 @@ class JvmSerializerExtension @JvmOverloads constructor(
}
private fun MutableVersionRequirementTable.writeNewFunctionNameManglingRequirement(add: (Int) -> Unit) {
if (languageVersionSettings.languageVersion.major == 1 && languageVersionSettings.languageVersion.minor >= 4) {
add(writeVersionRequirement(1, 4, 30, ProtoBuf.VersionRequirement.VersionKind.COMPILER_VERSION, this))
}
add(writeVersionRequirement(1, 4, 30, ProtoBuf.VersionRequirement.VersionKind.COMPILER_VERSION, this))
}
private fun FunctionDescriptor.needsInlineParameterNullCheckRequirement(): Boolean =
@@ -196,7 +196,8 @@ class GenerationState private constructor(
val languageVersionSettings = configuration.languageVersionSettings
val useOldManglingSchemeForFunctionsWithInlineClassesInSignatures =
configuration.getBoolean(JVMConfigurationKeys.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME)
configuration.getBoolean(JVMConfigurationKeys.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME) ||
languageVersionSettings.languageVersion.run { major == 1 && minor < 4 }
val target = configuration.get(JVMConfigurationKeys.JVM_TARGET) ?: JvmTarget.DEFAULT
val runtimeStringConcat =