[Test] Support USE_OLD_INLINE_CLASSES_MANGLING_SCHEME directive

This commit is contained in:
Dmitriy Novozhilov
2021-01-25 17:30:35 +03:00
parent 3f758a3fa2
commit fc83dc17fe
17 changed files with 26 additions and 19 deletions
@@ -1,7 +1,7 @@
// TARGET_BACKEND: JVM
// !LANGUAGE: +InlineClasses
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: A.kt
package a
@@ -1,7 +1,7 @@
// TARGET_BACKEND: JVM
// !LANGUAGE: +InlineClasses
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: A.kt
package lib
@@ -1,7 +1,7 @@
// TARGET_BACKEND: JVM
// !LANGUAGE: +InlineClasses
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: A.kt
package z
@@ -1,7 +1,7 @@
// TARGET_BACKEND: JVM
// !LANGUAGE: +InlineClasses
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: 1.kt
inline class IC(val s: String)
@@ -2,7 +2,7 @@
// !LANGUAGE: +InlineClasses
// WITH_STDLIB
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: A.kt
package z
@@ -1,7 +1,7 @@
// TARGET_BACKEND: JVM
// !LANGUAGE: +InlineClasses
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: A.kt
inline class A(val x: String) {
@@ -1,7 +1,7 @@
// TARGET_BACKEND: JVM
// !LANGUAGE: +InlineClasses
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: A.kt
package a
@@ -3,7 +3,7 @@
// WITH_STDLIB
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: 1.kt
package test
@@ -4,7 +4,7 @@
// WITH_REFLECT
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: A.kt
package a
@@ -4,7 +4,7 @@
// WITH_REFLECT
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: A.kt
package a
@@ -3,7 +3,7 @@
// !LANGUAGE: +InlineClasses
// WITH_STDLIB
// MODULE: lib
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// FILE: a.kt
package a
@@ -1,6 +1,6 @@
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
fun box(): String {
if (Char.MAX_VALUE in Char.MAX_VALUE until Char.MAX_VALUE) return "Fail in Char.MAX_VALUE"
@@ -19,4 +19,4 @@ fun box(): String {
if (!(ULong.MAX_VALUE !in ULong.MAX_VALUE until ULong.MAX_VALUE)) return "Fail !in ULong.MAX_VALUE"
return "OK"
}
}
@@ -1,6 +1,6 @@
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
fun box(): String {
if ('b' in 'a' until Char.MIN_VALUE) return "Fail in Char.MIN_VALUE"
@@ -19,4 +19,4 @@ fun box(): String {
if (!(1uL !in 0uL until ULong.MIN_VALUE)) return "Fail !in ULong.MIN_VALUE"
return "OK"
}
}
@@ -1,6 +1,6 @@
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
fun box(): String {
val charBound = Char.MIN_VALUE
@@ -24,4 +24,4 @@ fun box(): String {
if (!(1uL !in 0uL until uLongBound)) return "Fail !in ULong.MIN_VALUE"
return "OK"
}
}
@@ -1,6 +1,6 @@
// KJS_WITH_FULL_RUNTIME
// WITH_RUNTIME
// KOTLIN_CONFIGURATION_FLAGS: +JVM.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
// USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
fun testUIntRangeForEach() {
var s = 0
@@ -42,4 +42,4 @@ fun box(): String {
testULongProgressionForEach()
return "OK"
}
}
@@ -54,8 +54,13 @@ object JvmEnvironmentConfigurationDirectives : SimpleDirectivesContainer() {
additionalParser = JVMConstructorCallNormalizationMode.Companion::fromStringOrNull
)
@Suppress("RemoveExplicitTypeArguments")
val SAM_CONVERSIONS by enumDirective<JvmSamConversions>(
description = "SAM conversion code generation scheme",
additionalParser = JvmSamConversions.Companion::fromString
)
val USE_OLD_INLINE_CLASSES_MANGLING_SCHEME by directive(
description = "Enable old mangling scheme for inline classes"
)
}
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirective
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.CONSTRUCTOR_CALL_NORMALIZATION_MODE
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.SAM_CONVERSIONS
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.STRING_CONCAT
import org.jetbrains.kotlin.test.directives.JvmEnvironmentConfigurationDirectives.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME
import org.jetbrains.kotlin.test.directives.LanguageSettingsDirectives
import org.jetbrains.kotlin.test.directives.model.DirectivesContainer
import org.jetbrains.kotlin.test.directives.model.RegisteredDirectives
@@ -53,6 +54,7 @@ class JvmEnvironmentConfigurator(testServices: TestServices) : EnvironmentConfig
register(ASSERTIONS_MODE, JVMConfigurationKeys.ASSERTIONS_MODE)
register(CONSTRUCTOR_CALL_NORMALIZATION_MODE, JVMConfigurationKeys.CONSTRUCTOR_CALL_NORMALIZATION_MODE)
register(SAM_CONVERSIONS, JVMConfigurationKeys.SAM_CONVERSIONS)
register(USE_OLD_INLINE_CLASSES_MANGLING_SCHEME, JVMConfigurationKeys.USE_OLD_INLINE_CLASSES_MANGLING_SCHEME)
}
override fun configureCompilerConfiguration(configuration: CompilerConfiguration, module: TestModule, project: MockProject) {