Tests for abstract functions with default arguments

This commit is contained in:
Andrey Breslav
2014-01-23 17:43:35 +04:00
parent 4ab0b00bd3
commit ab7d8a7734
6 changed files with 61 additions and 0 deletions
@@ -0,0 +1,16 @@
abstract class Base {
abstract fun foo(a: String = "abc"): String
}
class Derived: Base() {
override fun foo(a: String): String {
return a
}
}
fun box(): String {
val result = Derived().foo()
if (result != "abc") return "Fail: $result"
return "OK"
}
@@ -0,0 +1,14 @@
trait Base {
fun bar(a: String = "abc"): String = a + " from trait"
}
class Derived: Base {
override fun bar(a: String): String = a + " from class"
}
fun box(): String {
val result = Derived().bar()
if (result != "abc from class") return "Fail: $result"
return "OK"
}
@@ -0,0 +1,8 @@
class JavaClass {
public static void main(String[] args) {
try {
new Derived().one(null);
}
catch (E1 e) {}
}
}
@@ -0,0 +1,8 @@
class E1: Exception()
trait Base<T> {
throws(javaClass<E1>())
fun one(t: T) {}
}
class Derived: Base<String>
@@ -1929,6 +1929,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
@TestMetadata("compiler/testData/codegen/box/defaultArguments/function")
public static class Function extends AbstractBlackBoxCodegenTest {
@TestMetadata("abstractClass.kt")
public void testAbstractClass() throws Exception {
doTest("compiler/testData/codegen/box/defaultArguments/function/abstractClass.kt");
}
public void testAllFilesPresentInFunction() throws Exception {
JetTestUtils.assertAllTestsPresentByMetadata(this.getClass(), "org.jetbrains.jet.generators.tests.TestsPackage", new File("compiler/testData/codegen/box/defaultArguments/function"), Pattern.compile("^(.+)\\.kt$"), true);
}
@@ -2013,6 +2018,11 @@ public class BlackBoxCodegenTestGenerated extends AbstractBlackBoxCodegenTest {
doTest("compiler/testData/codegen/box/defaultArguments/function/mixingNamedAndPositioned.kt");
}
@TestMetadata("trait.kt")
public void testTrait() throws Exception {
doTest("compiler/testData/codegen/box/defaultArguments/function/trait.kt");
}
}
public static Test innerSuite() {
@@ -286,6 +286,11 @@ public class CompileJavaAgainstKotlinTestGenerated extends AbstractCompileJavaAg
doTest("compiler/testData/compileJavaAgainstKotlin/method/throws/Delegation.kt");
}
@TestMetadata("GenericSubstitution.kt")
public void testGenericSubstitution() throws Exception {
doTest("compiler/testData/compileJavaAgainstKotlin/method/throws/GenericSubstitution.kt");
}
@TestMetadata("TopLevel.kt")
public void testTopLevel() throws Exception {
doTest("compiler/testData/compileJavaAgainstKotlin/method/throws/TopLevel.kt");