Do not optimize == for KClasses in redundant boxing elimination

For primitive wrappers such as java.lang.Integer,
  jlc = java.lang.Integer.class
  jlt = java.lang.Integer.TYPE
  !(ljc.equals(ljt))
However, in Kotlin corresponding KClass instances are equal.

 #KT-17748 Fixed Target versions 1.1.50
 #KT-17879 Fixed Target versions 1.1.50
This commit is contained in:
Dmitry Petrov
2017-09-05 15:57:51 +03:00
parent 2b27e64fc8
commit 61faa068d4
7 changed files with 100 additions and 4 deletions
@@ -950,12 +950,24 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
doTest(fileName);
}
@TestMetadata("kClassEquals.kt")
public void testKClassEquals() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/boxingOptimization/kClassEquals.kt");
doTest(fileName);
}
@TestMetadata("kt15871.kt")
public void testKt15871() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/boxingOptimization/kt15871.kt");
doTest(fileName);
}
@TestMetadata("kt17748.kt")
public void testKt17748() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/boxingOptimization/kt17748.kt");
doTest(fileName);
}
@TestMetadata("kt19767.kt")
public void testKt19767() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/boxingOptimization/kt19767.kt");
@@ -950,12 +950,24 @@ public class LightAnalysisModeTestGenerated extends AbstractLightAnalysisModeTes
doTest(fileName);
}
@TestMetadata("kClassEquals.kt")
public void testKClassEquals() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/boxingOptimization/kClassEquals.kt");
doTest(fileName);
}
@TestMetadata("kt15871.kt")
public void testKt15871() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/boxingOptimization/kt15871.kt");
doTest(fileName);
}
@TestMetadata("kt17748.kt")
public void testKt17748() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/boxingOptimization/kt17748.kt");
doTest(fileName);
}
@TestMetadata("kt19767.kt")
public void testKt19767() throws Exception {
String fileName = KotlinTestUtils.navigationMetadata("compiler/testData/codegen/box/boxingOptimization/kt19767.kt");