[IR][tests] Add test to check absence of false positively-detected unimplemented callables

^KT-53663
This commit is contained in:
Dmitriy Dolovov
2022-09-16 13:23:22 +02:00
parent cd007c02df
commit 500e4f5e24
8 changed files with 55 additions and 0 deletions
@@ -0,0 +1,21 @@
package lib
interface I {
fun f(): Int
val p1: Int
val p2: Int
}
interface I2: I {
fun compute() = f() * p1 * p2
}
abstract class AC : I2 {
override fun f() = 42
override val p1 get() = 2
override val p2 get() = -1
}
// All callables are correctly implemented in class C.
// Need to check that no false positives of "non-implemented" callables are detected for this case.
class C : I, AC()
@@ -0,0 +1,2 @@
STEP 0:
dependencies: stdlib
@@ -0,0 +1,10 @@
import abitestutils.abiTest
import lib.C
fun box() = abiTest {
val c = C()
expectSuccess(42) { c.f() }
expectSuccess(2) { c.p1 }
expectSuccess(-1) { c.p2 }
expectSuccess(-84) { c.compute() }
}
@@ -0,0 +1,2 @@
STEP 0:
dependencies: stdlib, lib
@@ -0,0 +1,4 @@
MODULES: lib, main
STEP 0:
libs: lib, main
@@ -40,6 +40,11 @@ public class JsKLibABINoICTestCaseGenerated extends AbstractJsKLibABINoICTestCas
runTest("compiler/testData/klibABI/changePropertyVisibility/");
}
@TestMetadata("noNonImplementedCallableFalsePositives")
public void testNoNonImplementedCallableFalsePositives() throws Exception {
runTest("compiler/testData/klibABI/noNonImplementedCallableFalsePositives/");
}
@TestMetadata("nonAbstractFunctionInAbstractClassBecomesAbstract")
public void testNonAbstractFunctionInAbstractClassBecomesAbstract() throws Exception {
runTest("compiler/testData/klibABI/nonAbstractFunctionInAbstractClassBecomesAbstract/");
@@ -40,6 +40,11 @@ public class JsKLibABIWithICTestCaseGenerated extends AbstractJsKLibABIWithICTes
runTest("compiler/testData/klibABI/changePropertyVisibility/");
}
@TestMetadata("noNonImplementedCallableFalsePositives")
public void testNoNonImplementedCallableFalsePositives() throws Exception {
runTest("compiler/testData/klibABI/noNonImplementedCallableFalsePositives/");
}
@TestMetadata("nonAbstractFunctionInAbstractClassBecomesAbstract")
public void testNonAbstractFunctionInAbstractClassBecomesAbstract() throws Exception {
runTest("compiler/testData/klibABI/nonAbstractFunctionInAbstractClassBecomesAbstract/");
@@ -36,6 +36,12 @@ public class KlibABITestGenerated extends AbstractNativeKlibABITest {
runTest("compiler/testData/klibABI/changePropertyVisibility/");
}
@Test
@TestMetadata("noNonImplementedCallableFalsePositives")
public void testNoNonImplementedCallableFalsePositives() throws Exception {
runTest("compiler/testData/klibABI/noNonImplementedCallableFalsePositives/");
}
@Test
@TestMetadata("nonAbstractFunctionInAbstractClassBecomesAbstract")
public void testNonAbstractFunctionInAbstractClassBecomesAbstract() throws Exception {