[IR][tests] Add test to check absence of false positively-detected unimplemented callables
^KT-53663
This commit is contained in:
@@ -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()
|
||||
+2
@@ -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() }
|
||||
}
|
||||
+2
@@ -0,0 +1,2 @@
|
||||
STEP 0:
|
||||
dependencies: stdlib, lib
|
||||
@@ -0,0 +1,4 @@
|
||||
MODULES: lib, main
|
||||
|
||||
STEP 0:
|
||||
libs: lib, main
|
||||
+5
@@ -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/");
|
||||
|
||||
+5
@@ -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/");
|
||||
|
||||
Generated
+6
@@ -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 {
|
||||
|
||||
Reference in New Issue
Block a user