IC mangling: Change mangling rules
1. Use 'x' for each parameter, which is not an inline class, every possible clash is handled by signature rather than name. This change makes more API changes binary-compatible. So, the changes are in line with the vision of inline classes are value classes, like primitives. 2. Take return type into account when mangling a function if the return type is inline class. Otherwise, boxing bridge will not be generated, which leads to CCE at runtime.
This commit is contained in:
+5
@@ -15797,6 +15797,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
||||
runTest("compiler/testData/codegen/box/inlineClasses/boxReturnValueOnOverride/kt35234a.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("overrideGenericWithInlineClass.kt")
|
||||
public void testOverrideGenericWithInlineClass() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/inlineClasses/boxReturnValueOnOverride/overrideGenericWithInlineClass.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("overrideGenericWithNullableInlineClassUpperBoundWithNonNullAny.kt")
|
||||
public void testOverrideGenericWithNullableInlineClassUpperBoundWithNonNullAny() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/inlineClasses/boxReturnValueOnOverride/overrideGenericWithNullableInlineClassUpperBoundWithNonNullAny.kt");
|
||||
|
||||
+5
@@ -987,6 +987,11 @@ public class BytecodeListingTestGenerated extends AbstractBytecodeListingTest {
|
||||
runTest("compiler/testData/codegen/bytecodeListing/inlineClasses/nullabilityInExpansion.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("nullableAndNotNullPrimitive.kt")
|
||||
public void testNullableAndNotNullPrimitive() throws Exception {
|
||||
runTest("compiler/testData/codegen/bytecodeListing/inlineClasses/nullableAndNotNullPrimitive.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("overridingGenericMethodWithInlineClassParameterType.kt")
|
||||
public void testOverridingGenericMethodWithInlineClassParameterType() throws Exception {
|
||||
runTest("compiler/testData/codegen/bytecodeListing/inlineClasses/overridingGenericMethodWithInlineClassParameterType.kt");
|
||||
|
||||
+5
@@ -15797,6 +15797,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
||||
runTest("compiler/testData/codegen/box/inlineClasses/boxReturnValueOnOverride/kt35234a.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("overrideGenericWithInlineClass.kt")
|
||||
public void testOverrideGenericWithInlineClass() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/inlineClasses/boxReturnValueOnOverride/overrideGenericWithInlineClass.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("overrideGenericWithNullableInlineClassUpperBoundWithNonNullAny.kt")
|
||||
public void testOverrideGenericWithNullableInlineClassUpperBoundWithNonNullAny() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/inlineClasses/boxReturnValueOnOverride/overrideGenericWithNullableInlineClassUpperBoundWithNonNullAny.kt");
|
||||
|
||||
+5
@@ -14397,6 +14397,11 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
||||
runTest("compiler/testData/codegen/box/inlineClasses/boxReturnValueOnOverride/kt35234a.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("overrideGenericWithInlineClass.kt")
|
||||
public void testOverrideGenericWithInlineClass() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/inlineClasses/boxReturnValueOnOverride/overrideGenericWithInlineClass.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("overrideGenericWithNullableInlineClassUpperBoundWithNonNullAny.kt")
|
||||
public void testOverrideGenericWithNullableInlineClassUpperBoundWithNonNullAny() throws Exception {
|
||||
runTest("compiler/testData/codegen/box/inlineClasses/boxReturnValueOnOverride/overrideGenericWithNullableInlineClassUpperBoundWithNonNullAny.kt");
|
||||
|
||||
+5
@@ -957,6 +957,11 @@ public class IrBytecodeListingTestGenerated extends AbstractIrBytecodeListingTes
|
||||
runTest("compiler/testData/codegen/bytecodeListing/inlineClasses/nullabilityInExpansion.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("nullableAndNotNullPrimitive.kt")
|
||||
public void testNullableAndNotNullPrimitive() throws Exception {
|
||||
runTest("compiler/testData/codegen/bytecodeListing/inlineClasses/nullableAndNotNullPrimitive.kt");
|
||||
}
|
||||
|
||||
@TestMetadata("overridingGenericMethodWithInlineClassParameterType.kt")
|
||||
public void testOverridingGenericMethodWithInlineClassParameterType() throws Exception {
|
||||
runTest("compiler/testData/codegen/bytecodeListing/inlineClasses/overridingGenericMethodWithInlineClassParameterType.kt");
|
||||
|
||||
Reference in New Issue
Block a user