Tests for abstract functions with default arguments
This commit is contained in:
@@ -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() {
|
||||
|
||||
+5
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user