Language feature for new inline class mangling rules (since 1.4)
This commit is contained in:
@@ -251,7 +251,8 @@ class GenerationState private constructor(
|
|||||||
val isInlineDisabled: Boolean = configuration.getBoolean(CommonConfigurationKeys.DISABLE_INLINE)
|
val isInlineDisabled: Boolean = configuration.getBoolean(CommonConfigurationKeys.DISABLE_INLINE)
|
||||||
val useTypeTableInSerializer: Boolean = configuration.getBoolean(JVMConfigurationKeys.USE_TYPE_TABLE)
|
val useTypeTableInSerializer: Boolean = configuration.getBoolean(JVMConfigurationKeys.USE_TYPE_TABLE)
|
||||||
val unifiedNullChecks: Boolean = languageVersionSettings.apiVersion >= ApiVersion.KOTLIN_1_4
|
val unifiedNullChecks: Boolean = languageVersionSettings.apiVersion >= ApiVersion.KOTLIN_1_4
|
||||||
val functionsWithInlineClassReturnTypesMangled: Boolean = languageVersionSettings.apiVersion >= ApiVersion.KOTLIN_1_4
|
val functionsWithInlineClassReturnTypesMangled: Boolean =
|
||||||
|
languageVersionSettings.supportsFeature(LanguageFeature.MangleClassMembersReturningInlineClasses)
|
||||||
|
|
||||||
val rootContext: CodegenContext<*> = RootContext(this)
|
val rootContext: CodegenContext<*> = RootContext(this)
|
||||||
|
|
||||||
|
|||||||
@@ -619,6 +619,9 @@ class KotlinTypeMapper @JvmOverloads constructor(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private val shouldMangleByReturnType =
|
||||||
|
languageVersionSettings.supportsFeature(LanguageFeature.MangleClassMembersReturningInlineClasses)
|
||||||
|
|
||||||
private fun mangleMemberNameIfRequired(
|
private fun mangleMemberNameIfRequired(
|
||||||
name: String,
|
name: String,
|
||||||
descriptor: CallableMemberDescriptor,
|
descriptor: CallableMemberDescriptor,
|
||||||
@@ -657,7 +660,7 @@ class KotlinTypeMapper @JvmOverloads constructor(
|
|||||||
// so that we don't have to repeat the same logic in reflection
|
// so that we don't have to repeat the same logic in reflection
|
||||||
// in case of properties without getter methods.
|
// in case of properties without getter methods.
|
||||||
if (kind !== OwnerKind.PROPERTY_REFERENCE_SIGNATURE || descriptor.isPropertyWithGetterSignaturePresent()) {
|
if (kind !== OwnerKind.PROPERTY_REFERENCE_SIGNATURE || descriptor.isPropertyWithGetterSignaturePresent()) {
|
||||||
val suffix = getManglingSuffixBasedOnKotlinSignature(descriptor)
|
val suffix = getManglingSuffixBasedOnKotlinSignature(descriptor, shouldMangleByReturnType)
|
||||||
if (suffix != null) {
|
if (suffix != null) {
|
||||||
newName += suffix
|
newName += suffix
|
||||||
} else if (kind === OwnerKind.ERASED_INLINE_CLASS) {
|
} else if (kind === OwnerKind.ERASED_INLINE_CLASS) {
|
||||||
@@ -683,6 +686,7 @@ class KotlinTypeMapper @JvmOverloads constructor(
|
|||||||
} else newName
|
} else newName
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun CallableMemberDescriptor.isPropertyWithGetterSignaturePresent(): Boolean {
|
private fun CallableMemberDescriptor.isPropertyWithGetterSignaturePresent(): Boolean {
|
||||||
val propertyDescriptor = when (this) {
|
val propertyDescriptor = when (this) {
|
||||||
is PropertyDescriptor -> this
|
is PropertyDescriptor -> this
|
||||||
|
|||||||
@@ -16,7 +16,10 @@ import org.jetbrains.kotlin.types.typeUtil.representativeUpperBound
|
|||||||
import java.security.MessageDigest
|
import java.security.MessageDigest
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
fun getManglingSuffixBasedOnKotlinSignature(descriptor: CallableMemberDescriptor): String? {
|
fun getManglingSuffixBasedOnKotlinSignature(
|
||||||
|
descriptor: CallableMemberDescriptor,
|
||||||
|
shouldMangleByReturnType: Boolean
|
||||||
|
): String? {
|
||||||
if (descriptor !is FunctionDescriptor) return null
|
if (descriptor !is FunctionDescriptor) return null
|
||||||
if (descriptor is ConstructorDescriptor) return null
|
if (descriptor is ConstructorDescriptor) return null
|
||||||
if (InlineClassDescriptorResolver.isSynthesizedBoxOrUnboxMethod(descriptor)) return null
|
if (InlineClassDescriptorResolver.isSynthesizedBoxOrUnboxMethod(descriptor)) return null
|
||||||
@@ -30,9 +33,11 @@ fun getManglingSuffixBasedOnKotlinSignature(descriptor: CallableMemberDescriptor
|
|||||||
// If a class member function returns inline class value, mangle its name.
|
// If a class member function returns inline class value, mangle its name.
|
||||||
// NB here function can be a suspend function JVM view with return type replaced with 'Any',
|
// NB here function can be a suspend function JVM view with return type replaced with 'Any',
|
||||||
// should unwrap it and take original return type instead.
|
// should unwrap it and take original return type instead.
|
||||||
val unwrappedDescriptor = descriptor.unwrapInitialDescriptorForSuspendFunction()
|
if (shouldMangleByReturnType) {
|
||||||
if (requiresFunctionNameManglingForReturnType(unwrappedDescriptor)) {
|
val unwrappedDescriptor = descriptor.unwrapInitialDescriptorForSuspendFunction()
|
||||||
return "-" + md5base64(":" + getSignatureElementForMangling(unwrappedDescriptor.returnType!!))
|
if (requiresFunctionNameManglingForReturnType(unwrappedDescriptor)) {
|
||||||
|
return "-" + md5base64(":" + getSignatureElementForMangling(unwrappedDescriptor.returnType!!))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|||||||
Generated
+5
@@ -12978,6 +12978,11 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT
|
|||||||
runTest("compiler/testData/codegen/box/inlineClasses/noAssertionsOnInlineClassBasedOnNullableType.kt");
|
runTest("compiler/testData/codegen/box/inlineClasses/noAssertionsOnInlineClassBasedOnNullableType.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeMangling.kt")
|
||||||
|
public void testNoReturnTypeMangling() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/inlineClasses/noReturnTypeMangling.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("nullableEqeqNonNull.kt")
|
@TestMetadata("nullableEqeqNonNull.kt")
|
||||||
public void testNullableEqeqNonNull() throws Exception {
|
public void testNullableEqeqNonNull() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/inlineClasses/nullableEqeqNonNull.kt");
|
runTest("compiler/testData/codegen/box/inlineClasses/nullableEqeqNonNull.kt");
|
||||||
|
|||||||
@@ -0,0 +1,13 @@
|
|||||||
|
// !LANGUAGE: +InlineClasses -MangleClassMembersReturningInlineClasses
|
||||||
|
|
||||||
|
inline class S(val x: String)
|
||||||
|
|
||||||
|
class Test {
|
||||||
|
fun getO() = S("O")
|
||||||
|
val k = S("K")
|
||||||
|
}
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val t = Test()
|
||||||
|
return t.getO().x + t.k.x
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
// !LANGUAGE: +InlineClasses -MangleClassMembersReturningInlineClasses
|
||||||
|
|
||||||
|
// FILE: 1.kt
|
||||||
|
|
||||||
|
package test
|
||||||
|
|
||||||
|
inline class S(val string: String)
|
||||||
|
|
||||||
|
inline fun foo() = S("OK")
|
||||||
|
|
||||||
|
// FILE: 2.kt
|
||||||
|
|
||||||
|
import test.*
|
||||||
|
|
||||||
|
fun box() : String =
|
||||||
|
foo().string
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
// !LANGUAGE: +InlineClasses -MangleClassMembersReturningInlineClasses
|
||||||
|
|
||||||
|
// FILE: 1.kt
|
||||||
|
|
||||||
|
package test
|
||||||
|
|
||||||
|
inline class S(val string: String)
|
||||||
|
|
||||||
|
inline val foo get() = S("OK")
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: 2.kt
|
||||||
|
|
||||||
|
import test.*
|
||||||
|
|
||||||
|
fun box() : String = foo.string
|
||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
// !LANGUAGE: +InlineClasses +MangleClassMembersReturningInlineClasses
|
||||||
|
|
||||||
|
// FILE: 1.kt
|
||||||
|
|
||||||
|
package test
|
||||||
|
|
||||||
|
inline class S(val string: String)
|
||||||
|
|
||||||
|
inline fun foo() = S("OK")
|
||||||
|
|
||||||
|
// FILE: 2.kt
|
||||||
|
|
||||||
|
import test.*
|
||||||
|
|
||||||
|
fun box() : String =
|
||||||
|
foo().string
|
||||||
+16
@@ -0,0 +1,16 @@
|
|||||||
|
// !LANGUAGE: +InlineClasses +MangleClassMembersReturningInlineClasses
|
||||||
|
|
||||||
|
// FILE: 1.kt
|
||||||
|
|
||||||
|
package test
|
||||||
|
|
||||||
|
inline class S(val string: String)
|
||||||
|
|
||||||
|
inline val foo get() = S("OK")
|
||||||
|
|
||||||
|
|
||||||
|
// FILE: 2.kt
|
||||||
|
|
||||||
|
import test.*
|
||||||
|
|
||||||
|
fun box() : String = foo.string
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
// !LANGUAGE: +InlineClasses -MangleClassMembersReturningInlineClasses
|
||||||
|
// IGNORE_BACKEND: JVM_IR
|
||||||
|
|
||||||
|
inline class S(val x: String)
|
||||||
|
|
||||||
|
class Test {
|
||||||
|
fun getO() = S("O")
|
||||||
|
val k = S("K")
|
||||||
|
}
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
val t = Test()
|
||||||
|
return t.getO().x + t.k.x
|
||||||
|
}
|
||||||
|
|
||||||
|
// 1 public final getO\(\)Ljava/lang/String;
|
||||||
|
// 1 public final getK\(\)Ljava/lang/String;
|
||||||
+5
@@ -14193,6 +14193,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
|||||||
runTest("compiler/testData/codegen/box/inlineClasses/noAssertionsOnInlineClassBasedOnNullableType.kt");
|
runTest("compiler/testData/codegen/box/inlineClasses/noAssertionsOnInlineClassBasedOnNullableType.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeMangling.kt")
|
||||||
|
public void testNoReturnTypeMangling() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/inlineClasses/noReturnTypeMangling.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("nullableEqeqNonNull.kt")
|
@TestMetadata("nullableEqeqNonNull.kt")
|
||||||
public void testNullableEqeqNonNull() throws Exception {
|
public void testNullableEqeqNonNull() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/inlineClasses/nullableEqeqNonNull.kt");
|
runTest("compiler/testData/codegen/box/inlineClasses/nullableEqeqNonNull.kt");
|
||||||
|
|||||||
+20
@@ -1890,6 +1890,26 @@ public class BlackBoxInlineCodegenTestGenerated extends AbstractBlackBoxInlineCo
|
|||||||
public void testInlineFunctionInsideInlineClassesBox() throws Exception {
|
public void testInlineFunctionInsideInlineClassesBox() throws Exception {
|
||||||
runTest("compiler/testData/codegen/boxInline/inlineClasses/inlineFunctionInsideInlineClassesBox.kt");
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/inlineFunctionInsideInlineClassesBox.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeManglingFun.kt")
|
||||||
|
public void testNoReturnTypeManglingFun() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/noReturnTypeManglingFun.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeManglingVal.kt")
|
||||||
|
public void testNoReturnTypeManglingVal() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/noReturnTypeManglingVal.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withReturnTypeManglingFun.kt")
|
||||||
|
public void testWithReturnTypeManglingFun() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/withReturnTypeManglingFun.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withReturnTypeManglingVal.kt")
|
||||||
|
public void testWithReturnTypeManglingVal() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/withReturnTypeManglingVal.kt");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/testData/codegen/boxInline/innerClasses")
|
@TestMetadata("compiler/testData/codegen/boxInline/innerClasses")
|
||||||
|
|||||||
@@ -2951,6 +2951,11 @@ public class BytecodeTextTestGenerated extends AbstractBytecodeTextTest {
|
|||||||
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/noBoxingUnboxingInAccessorsForDelegatedPropertyWithInlineClassDelegate.kt");
|
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/noBoxingUnboxingInAccessorsForDelegatedPropertyWithInlineClassDelegate.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeMangling.kt")
|
||||||
|
public void testNoReturnTypeMangling() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/noReturnTypeMangling.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("nonOverridingMethodsAreCalledByInlineClass.kt")
|
@TestMetadata("nonOverridingMethodsAreCalledByInlineClass.kt")
|
||||||
public void testNonOverridingMethodsAreCalledByInlineClass() throws Exception {
|
public void testNonOverridingMethodsAreCalledByInlineClass() throws Exception {
|
||||||
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/nonOverridingMethodsAreCalledByInlineClass.kt");
|
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/nonOverridingMethodsAreCalledByInlineClass.kt");
|
||||||
|
|||||||
Generated
+20
@@ -1890,6 +1890,26 @@ public class CompileKotlinAgainstInlineKotlinTestGenerated extends AbstractCompi
|
|||||||
public void testInlineFunctionInsideInlineClassesBox() throws Exception {
|
public void testInlineFunctionInsideInlineClassesBox() throws Exception {
|
||||||
runTest("compiler/testData/codegen/boxInline/inlineClasses/inlineFunctionInsideInlineClassesBox.kt");
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/inlineFunctionInsideInlineClassesBox.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeManglingFun.kt")
|
||||||
|
public void testNoReturnTypeManglingFun() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/noReturnTypeManglingFun.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeManglingVal.kt")
|
||||||
|
public void testNoReturnTypeManglingVal() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/noReturnTypeManglingVal.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withReturnTypeManglingFun.kt")
|
||||||
|
public void testWithReturnTypeManglingFun() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/withReturnTypeManglingFun.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withReturnTypeManglingVal.kt")
|
||||||
|
public void testWithReturnTypeManglingVal() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/withReturnTypeManglingVal.kt");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/testData/codegen/boxInline/innerClasses")
|
@TestMetadata("compiler/testData/codegen/boxInline/innerClasses")
|
||||||
|
|||||||
+5
@@ -14198,6 +14198,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
|||||||
runTest("compiler/testData/codegen/box/inlineClasses/noAssertionsOnInlineClassBasedOnNullableType.kt");
|
runTest("compiler/testData/codegen/box/inlineClasses/noAssertionsOnInlineClassBasedOnNullableType.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeMangling.kt")
|
||||||
|
public void testNoReturnTypeMangling() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/inlineClasses/noReturnTypeMangling.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("nullableEqeqNonNull.kt")
|
@TestMetadata("nullableEqeqNonNull.kt")
|
||||||
public void testNullableEqeqNonNull() throws Exception {
|
public void testNullableEqeqNonNull() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/inlineClasses/nullableEqeqNonNull.kt");
|
runTest("compiler/testData/codegen/box/inlineClasses/nullableEqeqNonNull.kt");
|
||||||
|
|||||||
+5
@@ -12978,6 +12978,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
|||||||
runTest("compiler/testData/codegen/box/inlineClasses/noAssertionsOnInlineClassBasedOnNullableType.kt");
|
runTest("compiler/testData/codegen/box/inlineClasses/noAssertionsOnInlineClassBasedOnNullableType.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeMangling.kt")
|
||||||
|
public void testNoReturnTypeMangling() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/inlineClasses/noReturnTypeMangling.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("nullableEqeqNonNull.kt")
|
@TestMetadata("nullableEqeqNonNull.kt")
|
||||||
public void testNullableEqeqNonNull() throws Exception {
|
public void testNullableEqeqNonNull() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/inlineClasses/nullableEqeqNonNull.kt");
|
runTest("compiler/testData/codegen/box/inlineClasses/nullableEqeqNonNull.kt");
|
||||||
|
|||||||
+20
@@ -1890,6 +1890,26 @@ public class IrBlackBoxInlineCodegenTestGenerated extends AbstractIrBlackBoxInli
|
|||||||
public void testInlineFunctionInsideInlineClassesBox() throws Exception {
|
public void testInlineFunctionInsideInlineClassesBox() throws Exception {
|
||||||
runTest("compiler/testData/codegen/boxInline/inlineClasses/inlineFunctionInsideInlineClassesBox.kt");
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/inlineFunctionInsideInlineClassesBox.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeManglingFun.kt")
|
||||||
|
public void testNoReturnTypeManglingFun() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/noReturnTypeManglingFun.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeManglingVal.kt")
|
||||||
|
public void testNoReturnTypeManglingVal() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/noReturnTypeManglingVal.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withReturnTypeManglingFun.kt")
|
||||||
|
public void testWithReturnTypeManglingFun() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/withReturnTypeManglingFun.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withReturnTypeManglingVal.kt")
|
||||||
|
public void testWithReturnTypeManglingVal() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/withReturnTypeManglingVal.kt");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/testData/codegen/boxInline/innerClasses")
|
@TestMetadata("compiler/testData/codegen/boxInline/innerClasses")
|
||||||
|
|||||||
+5
@@ -3036,6 +3036,11 @@ public class IrBytecodeTextTestGenerated extends AbstractIrBytecodeTextTest {
|
|||||||
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/noBoxingUnboxingInAccessorsForDelegatedPropertyWithInlineClassDelegate.kt");
|
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/noBoxingUnboxingInAccessorsForDelegatedPropertyWithInlineClassDelegate.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeMangling.kt")
|
||||||
|
public void testNoReturnTypeMangling() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/noReturnTypeMangling.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("nonOverridingMethodsAreCalledByInlineClass.kt")
|
@TestMetadata("nonOverridingMethodsAreCalledByInlineClass.kt")
|
||||||
public void testNonOverridingMethodsAreCalledByInlineClass() throws Exception {
|
public void testNonOverridingMethodsAreCalledByInlineClass() throws Exception {
|
||||||
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/nonOverridingMethodsAreCalledByInlineClass.kt");
|
runTest("compiler/testData/codegen/bytecodeText/inlineClasses/nonOverridingMethodsAreCalledByInlineClass.kt");
|
||||||
|
|||||||
Generated
+20
@@ -1890,6 +1890,26 @@ public class IrCompileKotlinAgainstInlineKotlinTestGenerated extends AbstractIrC
|
|||||||
public void testInlineFunctionInsideInlineClassesBox() throws Exception {
|
public void testInlineFunctionInsideInlineClassesBox() throws Exception {
|
||||||
runTest("compiler/testData/codegen/boxInline/inlineClasses/inlineFunctionInsideInlineClassesBox.kt");
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/inlineFunctionInsideInlineClassesBox.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeManglingFun.kt")
|
||||||
|
public void testNoReturnTypeManglingFun() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/noReturnTypeManglingFun.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeManglingVal.kt")
|
||||||
|
public void testNoReturnTypeManglingVal() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/noReturnTypeManglingVal.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withReturnTypeManglingFun.kt")
|
||||||
|
public void testWithReturnTypeManglingFun() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/withReturnTypeManglingFun.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withReturnTypeManglingVal.kt")
|
||||||
|
public void testWithReturnTypeManglingVal() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/withReturnTypeManglingVal.kt");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/testData/codegen/boxInline/innerClasses")
|
@TestMetadata("compiler/testData/codegen/boxInline/innerClasses")
|
||||||
|
|||||||
@@ -124,6 +124,7 @@ enum class LanguageFeature(
|
|||||||
ProperIeee754Comparisons(KOTLIN_1_4, kind = BUG_FIX),
|
ProperIeee754Comparisons(KOTLIN_1_4, kind = BUG_FIX),
|
||||||
FunctionalInterfaceConversion(KOTLIN_1_4, kind = UNSTABLE_FEATURE),
|
FunctionalInterfaceConversion(KOTLIN_1_4, kind = UNSTABLE_FEATURE),
|
||||||
GenerateJvmOverloadsAsFinal(KOTLIN_1_4),
|
GenerateJvmOverloadsAsFinal(KOTLIN_1_4),
|
||||||
|
MangleClassMembersReturningInlineClasses(KOTLIN_1_4),
|
||||||
|
|
||||||
ProhibitSpreadOnSignaturePolymorphicCall(KOTLIN_1_5, kind = BUG_FIX),
|
ProhibitSpreadOnSignaturePolymorphicCall(KOTLIN_1_5, kind = BUG_FIX),
|
||||||
ProhibitInvisibleAbstractMethodsInSuperclasses(KOTLIN_1_5, kind = BUG_FIX),
|
ProhibitInvisibleAbstractMethodsInSuperclasses(KOTLIN_1_5, kind = BUG_FIX),
|
||||||
|
|||||||
Generated
+5
@@ -11168,6 +11168,11 @@ public class IrJsCodegenBoxES6TestGenerated extends AbstractIrJsCodegenBoxES6Tes
|
|||||||
runTest("compiler/testData/codegen/box/inlineClasses/noAssertionsOnInlineClassBasedOnNullableType.kt");
|
runTest("compiler/testData/codegen/box/inlineClasses/noAssertionsOnInlineClassBasedOnNullableType.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeMangling.kt")
|
||||||
|
public void testNoReturnTypeMangling() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/inlineClasses/noReturnTypeMangling.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("nullableEqeqNonNull.kt")
|
@TestMetadata("nullableEqeqNonNull.kt")
|
||||||
public void testNullableEqeqNonNull() throws Exception {
|
public void testNullableEqeqNonNull() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/inlineClasses/nullableEqeqNonNull.kt");
|
runTest("compiler/testData/codegen/box/inlineClasses/nullableEqeqNonNull.kt");
|
||||||
|
|||||||
Generated
+20
@@ -1690,6 +1690,26 @@ public class IrJsCodegenInlineES6TestGenerated extends AbstractIrJsCodegenInline
|
|||||||
public void testInlineFunctionInsideInlineClassesBox() throws Exception {
|
public void testInlineFunctionInsideInlineClassesBox() throws Exception {
|
||||||
runTest("compiler/testData/codegen/boxInline/inlineClasses/inlineFunctionInsideInlineClassesBox.kt");
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/inlineFunctionInsideInlineClassesBox.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeManglingFun.kt")
|
||||||
|
public void testNoReturnTypeManglingFun() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/noReturnTypeManglingFun.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeManglingVal.kt")
|
||||||
|
public void testNoReturnTypeManglingVal() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/noReturnTypeManglingVal.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withReturnTypeManglingFun.kt")
|
||||||
|
public void testWithReturnTypeManglingFun() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/withReturnTypeManglingFun.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withReturnTypeManglingVal.kt")
|
||||||
|
public void testWithReturnTypeManglingVal() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/withReturnTypeManglingVal.kt");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/testData/codegen/boxInline/innerClasses")
|
@TestMetadata("compiler/testData/codegen/boxInline/innerClasses")
|
||||||
|
|||||||
Generated
+5
@@ -11178,6 +11178,11 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
|
|||||||
runTest("compiler/testData/codegen/box/inlineClasses/noAssertionsOnInlineClassBasedOnNullableType.kt");
|
runTest("compiler/testData/codegen/box/inlineClasses/noAssertionsOnInlineClassBasedOnNullableType.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeMangling.kt")
|
||||||
|
public void testNoReturnTypeMangling() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/inlineClasses/noReturnTypeMangling.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("nullableEqeqNonNull.kt")
|
@TestMetadata("nullableEqeqNonNull.kt")
|
||||||
public void testNullableEqeqNonNull() throws Exception {
|
public void testNullableEqeqNonNull() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/inlineClasses/nullableEqeqNonNull.kt");
|
runTest("compiler/testData/codegen/box/inlineClasses/nullableEqeqNonNull.kt");
|
||||||
|
|||||||
Generated
+20
@@ -1690,6 +1690,26 @@ public class IrJsCodegenInlineTestGenerated extends AbstractIrJsCodegenInlineTes
|
|||||||
public void testInlineFunctionInsideInlineClassesBox() throws Exception {
|
public void testInlineFunctionInsideInlineClassesBox() throws Exception {
|
||||||
runTest("compiler/testData/codegen/boxInline/inlineClasses/inlineFunctionInsideInlineClassesBox.kt");
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/inlineFunctionInsideInlineClassesBox.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeManglingFun.kt")
|
||||||
|
public void testNoReturnTypeManglingFun() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/noReturnTypeManglingFun.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeManglingVal.kt")
|
||||||
|
public void testNoReturnTypeManglingVal() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/noReturnTypeManglingVal.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withReturnTypeManglingFun.kt")
|
||||||
|
public void testWithReturnTypeManglingFun() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/withReturnTypeManglingFun.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withReturnTypeManglingVal.kt")
|
||||||
|
public void testWithReturnTypeManglingVal() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/withReturnTypeManglingVal.kt");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/testData/codegen/boxInline/innerClasses")
|
@TestMetadata("compiler/testData/codegen/boxInline/innerClasses")
|
||||||
|
|||||||
+5
@@ -11243,6 +11243,11 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
|
|||||||
runTest("compiler/testData/codegen/box/inlineClasses/noAssertionsOnInlineClassBasedOnNullableType.kt");
|
runTest("compiler/testData/codegen/box/inlineClasses/noAssertionsOnInlineClassBasedOnNullableType.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeMangling.kt")
|
||||||
|
public void testNoReturnTypeMangling() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/inlineClasses/noReturnTypeMangling.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("nullableEqeqNonNull.kt")
|
@TestMetadata("nullableEqeqNonNull.kt")
|
||||||
public void testNullableEqeqNonNull() throws Exception {
|
public void testNullableEqeqNonNull() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/inlineClasses/nullableEqeqNonNull.kt");
|
runTest("compiler/testData/codegen/box/inlineClasses/nullableEqeqNonNull.kt");
|
||||||
|
|||||||
+20
@@ -1690,6 +1690,26 @@ public class JsCodegenInlineTestGenerated extends AbstractJsCodegenInlineTest {
|
|||||||
public void testInlineFunctionInsideInlineClassesBox() throws Exception {
|
public void testInlineFunctionInsideInlineClassesBox() throws Exception {
|
||||||
runTest("compiler/testData/codegen/boxInline/inlineClasses/inlineFunctionInsideInlineClassesBox.kt");
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/inlineFunctionInsideInlineClassesBox.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeManglingFun.kt")
|
||||||
|
public void testNoReturnTypeManglingFun() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/noReturnTypeManglingFun.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("noReturnTypeManglingVal.kt")
|
||||||
|
public void testNoReturnTypeManglingVal() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/noReturnTypeManglingVal.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withReturnTypeManglingFun.kt")
|
||||||
|
public void testWithReturnTypeManglingFun() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/withReturnTypeManglingFun.kt");
|
||||||
|
}
|
||||||
|
|
||||||
|
@TestMetadata("withReturnTypeManglingVal.kt")
|
||||||
|
public void testWithReturnTypeManglingVal() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/boxInline/inlineClasses/withReturnTypeManglingVal.kt");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@TestMetadata("compiler/testData/codegen/boxInline/innerClasses")
|
@TestMetadata("compiler/testData/codegen/boxInline/innerClasses")
|
||||||
|
|||||||
Reference in New Issue
Block a user