Add another test for KT-49715 and fix JS IR behavior
#KT-49715 #KT-51798 Fixed
This commit is contained in:
committed by
Alexander Udalov
parent
24105139ea
commit
df86290083
+6
@@ -13143,6 +13143,12 @@ public class FirBlackBoxCodegenTestGenerated extends AbstractFirBlackBoxCodegenT
|
|||||||
runTest("compiler/testData/codegen/box/dataClasses/kt49715.kt");
|
runTest("compiler/testData/codegen/box/dataClasses/kt49715.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("kt49715_behaviorChange.kt")
|
||||||
|
public void testKt49715_behaviorChange() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/dataClasses/kt49715_behaviorChange.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("kt5002.kt")
|
@TestMetadata("kt5002.kt")
|
||||||
public void testKt5002() throws Exception {
|
public void testKt5002() throws Exception {
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ import org.jetbrains.kotlin.ir.types.isNullableAny
|
|||||||
import org.jetbrains.kotlin.ir.util.isEffectivelyExternal
|
import org.jetbrains.kotlin.ir.util.isEffectivelyExternal
|
||||||
import org.jetbrains.kotlin.ir.util.isTopLevelDeclaration
|
import org.jetbrains.kotlin.ir.util.isTopLevelDeclaration
|
||||||
import org.jetbrains.kotlin.name.Name
|
import org.jetbrains.kotlin.name.Name
|
||||||
|
import org.jetbrains.kotlin.util.OperatorNameConventions
|
||||||
|
|
||||||
fun TODO(element: IrElement): Nothing = TODO(element::class.java.simpleName + " is not supported yet here")
|
fun TODO(element: IrElement): Nothing = TODO(element::class.java.simpleName + " is not supported yet here")
|
||||||
|
|
||||||
@@ -58,9 +59,10 @@ fun IrFunction.hasStableJsName(context: JsIrBackendContext): Boolean {
|
|||||||
return (isEffectivelyExternal() || getJsName() != null || isExported(context)) && namedOrMissingGetter
|
return (isEffectivelyExternal() || getJsName() != null || isExported(context)) && namedOrMissingGetter
|
||||||
}
|
}
|
||||||
|
|
||||||
fun IrFunction.isEqualsInheritedFromAny() =
|
fun IrFunction.isEqualsInheritedFromAny(): Boolean =
|
||||||
name == Name.identifier("equals") &&
|
name == OperatorNameConventions.EQUALS &&
|
||||||
dispatchReceiverParameter != null &&
|
dispatchReceiverParameter != null &&
|
||||||
|
extensionReceiverParameter == null &&
|
||||||
valueParameters.size == 1 &&
|
valueParameters.size == 1 &&
|
||||||
valueParameters[0].type.isNullableAny()
|
valueParameters[0].type.isNullableAny()
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
// IGNORE_BACKEND_FIR: JVM_IR
|
||||||
|
// FIR status: [IR VALIDATION] Duplicate IR node: FUN GENERATED_DATA_CLASS_MEMBER name:equals
|
||||||
|
|
||||||
|
interface A {
|
||||||
|
fun Any.equals(other: Any?): Boolean = false
|
||||||
|
fun Any.hashCode(): Int = 0
|
||||||
|
fun Any.toString(): String = ""
|
||||||
|
}
|
||||||
|
|
||||||
|
data class B(val x: Int) : A
|
||||||
|
|
||||||
|
fun box(): String {
|
||||||
|
if (B(42) != B(42)) return "Fail equals"
|
||||||
|
if (B(42).hashCode() != B(42).hashCode()) return "Fail hashCode"
|
||||||
|
if (B(42).toString() != B(42).toString()) return "Fail toString"
|
||||||
|
return "OK"
|
||||||
|
}
|
||||||
+6
@@ -13017,6 +13017,12 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
|
|||||||
runTest("compiler/testData/codegen/box/dataClasses/kt49715.kt");
|
runTest("compiler/testData/codegen/box/dataClasses/kt49715.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("kt49715_behaviorChange.kt")
|
||||||
|
public void testKt49715_behaviorChange() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/dataClasses/kt49715_behaviorChange.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("kt5002.kt")
|
@TestMetadata("kt5002.kt")
|
||||||
public void testKt5002() throws Exception {
|
public void testKt5002() throws Exception {
|
||||||
|
|||||||
+6
@@ -13143,6 +13143,12 @@ public class IrBlackBoxCodegenTestGenerated extends AbstractIrBlackBoxCodegenTes
|
|||||||
runTest("compiler/testData/codegen/box/dataClasses/kt49715.kt");
|
runTest("compiler/testData/codegen/box/dataClasses/kt49715.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("kt49715_behaviorChange.kt")
|
||||||
|
public void testKt49715_behaviorChange() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/dataClasses/kt49715_behaviorChange.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("kt5002.kt")
|
@TestMetadata("kt5002.kt")
|
||||||
public void testKt5002() throws Exception {
|
public void testKt5002() throws Exception {
|
||||||
|
|||||||
+5
@@ -10542,6 +10542,11 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
|
|||||||
runTest("compiler/testData/codegen/box/dataClasses/kt49715.kt");
|
runTest("compiler/testData/codegen/box/dataClasses/kt49715.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("kt49715_behaviorChange.kt")
|
||||||
|
public void testKt49715_behaviorChange() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/dataClasses/kt49715_behaviorChange.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("kt5002.kt")
|
@TestMetadata("kt5002.kt")
|
||||||
public void testKt5002() throws Exception {
|
public void testKt5002() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/dataClasses/kt5002.kt");
|
runTest("compiler/testData/codegen/box/dataClasses/kt5002.kt");
|
||||||
|
|||||||
+6
@@ -9731,6 +9731,12 @@ public class JsCodegenBoxTestGenerated extends AbstractJsCodegenBoxTest {
|
|||||||
runTest("compiler/testData/codegen/box/dataClasses/kt49715.kt");
|
runTest("compiler/testData/codegen/box/dataClasses/kt49715.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("kt49715_behaviorChange.kt")
|
||||||
|
public void testKt49715_behaviorChange() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/dataClasses/kt49715_behaviorChange.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("mixedParams.kt")
|
@TestMetadata("mixedParams.kt")
|
||||||
public void testMixedParams() throws Exception {
|
public void testMixedParams() throws Exception {
|
||||||
|
|||||||
+6
@@ -9773,6 +9773,12 @@ public class IrJsCodegenBoxTestGenerated extends AbstractIrJsCodegenBoxTest {
|
|||||||
runTest("compiler/testData/codegen/box/dataClasses/kt49715.kt");
|
runTest("compiler/testData/codegen/box/dataClasses/kt49715.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("kt49715_behaviorChange.kt")
|
||||||
|
public void testKt49715_behaviorChange() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/dataClasses/kt49715_behaviorChange.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("mixedParams.kt")
|
@TestMetadata("mixedParams.kt")
|
||||||
public void testMixedParams() throws Exception {
|
public void testMixedParams() throws Exception {
|
||||||
|
|||||||
+5
@@ -8554,6 +8554,11 @@ public class IrCodegenBoxWasmTestGenerated extends AbstractIrCodegenBoxWasmTest
|
|||||||
runTest("compiler/testData/codegen/box/dataClasses/kt49715.kt");
|
runTest("compiler/testData/codegen/box/dataClasses/kt49715.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@TestMetadata("kt49715_behaviorChange.kt")
|
||||||
|
public void testKt49715_behaviorChange() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/dataClasses/kt49715_behaviorChange.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@TestMetadata("mixedParams.kt")
|
@TestMetadata("mixedParams.kt")
|
||||||
public void testMixedParams() throws Exception {
|
public void testMixedParams() throws Exception {
|
||||||
runTest("compiler/testData/codegen/box/dataClasses/mixedParams.kt");
|
runTest("compiler/testData/codegen/box/dataClasses/mixedParams.kt");
|
||||||
|
|||||||
+6
@@ -10687,6 +10687,12 @@ public class NativeCodegenBoxTestGenerated extends AbstractNativeCodegenBoxTest
|
|||||||
runTest("compiler/testData/codegen/box/dataClasses/kt49715.kt");
|
runTest("compiler/testData/codegen/box/dataClasses/kt49715.kt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
@TestMetadata("kt49715_behaviorChange.kt")
|
||||||
|
public void testKt49715_behaviorChange() throws Exception {
|
||||||
|
runTest("compiler/testData/codegen/box/dataClasses/kt49715_behaviorChange.kt");
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@TestMetadata("mixedParams.kt")
|
@TestMetadata("mixedParams.kt")
|
||||||
public void testMixedParams() throws Exception {
|
public void testMixedParams() throws Exception {
|
||||||
|
|||||||
Reference in New Issue
Block a user