IC mangling: Replace compiler hack with configuration flag

This commit is contained in:
Ilmir Usmanov
2020-11-14 00:47:17 +01:00
parent bc1b6fef1f
commit 2cd9016016
27 changed files with 108 additions and 30 deletions
@@ -203,18 +203,26 @@ abstract class AbstractVersionRequirementTest : TestCaseWithTmpdir() {
)
}
fun testInlineClassesAndRelevantDeclarations() {
fun testInlineClassesAndRelevantDeclarations13() {
doTest(
VersionRequirement.Version(1, 3), DeprecationLevel.ERROR, null, ProtoBuf.VersionRequirement.VersionKind.LANGUAGE_VERSION, null,
fqNamesWithRequirements = listOf(
"test.IC",
"test.Ctor.<init>",
"test.Foo",
"test.Bar",
"test.simpleProp"
)
)
}
fun testInlineClassesAndRelevantDeclarations1430() {
doTest(
VersionRequirement.Version(1, 4, 30), DeprecationLevel.ERROR, null, ProtoBuf.VersionRequirement.VersionKind.COMPILER_VERSION, null,
fqNamesWithRequirements = listOf(
"test.simpleFun",
"test.aliasedFun",
"test.simpleProp",
"test.result",
"test.Foo",
"test.Bar"
)
)
}
@@ -145,26 +145,38 @@ class JvmVersionRequirementTest : AbstractVersionRequirementTest() {
doTest(
VersionRequirement.Version(1, 3, 0), DeprecationLevel.ERROR, null, LANGUAGE_VERSION, null,
fqNamesWithRequirements = listOf(
"test.C.returnsInlineClassTypeJvmName",
"test.returnsInlineClassType",
"test.propertyOfInlineClassType"
),
shouldBeSingleRequirement = true,
customLanguageVersion = LanguageVersion.KOTLIN_1_4
)
// In Kotlin 1.3, all functions and properties returning inline class values are NOT mangled,
// and have "since 1.3" version requirement for inline class in signature only.
doTest(
VersionRequirement.Version(1, 3, 0), DeprecationLevel.ERROR, null, LANGUAGE_VERSION, null,
fqNamesWithRequirements = listOf(
"test.returnsInlineClassType",
"test.propertyOfInlineClassType",
"test.C.returnsInlineClassType",
"test.C.propertyOfInlineClassType"
),
shouldBeSingleRequirement = true,
customLanguageVersion = LanguageVersion.KOTLIN_1_3
)
// In Kotlin 1.3, all functions and properties returning inline class values are NOT mangled,
// and have "since 1.3" version requirement for inline class in signature only.
doTest(
VersionRequirement.Version(1, 4, 30), DeprecationLevel.ERROR, null, COMPILER_VERSION, null,
fqNamesWithRequirements = listOf(
"test.C.returnsInlineClassTypeJvmName",
"test.returnsInlineClassType"
),
shouldBeSingleRequirement = true,
customLanguageVersion = LanguageVersion.KOTLIN_1_4
)
doTest(
VersionRequirement.Version(1, 4, 30), DeprecationLevel.ERROR, null, COMPILER_VERSION, null,
fqNamesWithRequirements = listOf(
"test.C.returnsInlineClassType"
),
shouldBeSingleRequirement = false,
customLanguageVersion = LanguageVersion.KOTLIN_1_4
)
}
fun testSuspendFun_1_2() {