JS backend: testFiles -> testData
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
package foo
|
||||
|
||||
open class A(val barVal: Int) {
|
||||
open fun bar(): Int = 1
|
||||
open fun bar2(): Int = barVal + 1
|
||||
open fun bar3(t: Int) = t + 2
|
||||
open fun bar4(t: Int = 1) = t + 3 + barVal
|
||||
}
|
||||
|
||||
class B : A(1) {
|
||||
override fun bar(): Int {
|
||||
return super.bar() + 10;
|
||||
}
|
||||
override fun bar2(): Int {
|
||||
return super<A>.bar2() + 10;
|
||||
}
|
||||
override fun bar3(t: Int): Int {
|
||||
return super.bar3(t + 10);
|
||||
}
|
||||
override fun bar4(t: Int): Int {
|
||||
return super<A>.bar4() + 10;
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val b = B()
|
||||
if (b.bar() != 11) return "Simple call fail. b.bar() is ${b.bar()}"
|
||||
if (b.bar2() != 12) return "Wrong 'this' in supercall. b.bar2() is ${b.bar2()}"
|
||||
if (b.bar3(2) != 14) return "Supercall with parameter fail. b.bar3(2) is ${b.bar3(2)}"
|
||||
if (b.bar4() != 15) return "Supercall with default parameter & this fault. b.bar4() is ${b.bar4()}"
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package foo
|
||||
|
||||
import java.util.ArrayList
|
||||
|
||||
class N() : ArrayList<Any>() {
|
||||
override fun add(el: Any): Boolean {
|
||||
if (!super<ArrayList>.add(el)) {
|
||||
throw Exception()
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val n = N()
|
||||
if (n.add("239")) return "fail"
|
||||
if (n.get(0) == "239") return "OK";
|
||||
return "fail";
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package foo
|
||||
|
||||
trait A {
|
||||
fun bar(): Int = 2
|
||||
fun foo(t: Int): Int = t + 1
|
||||
}
|
||||
|
||||
trait B : A {
|
||||
override fun bar(): Int = 3
|
||||
}
|
||||
|
||||
class C : B, A {
|
||||
|
||||
override fun bar(): Int {
|
||||
return super<B>.bar() + super<A>.bar()
|
||||
}
|
||||
|
||||
override fun foo(t: Int): Int {
|
||||
return super<A>.foo(1) + t
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fun box(): String {
|
||||
val c = C()
|
||||
if (c.foo(3) != 5) return "Trait super call fail. c.foo(3) is ${c.foo(3)}"
|
||||
if (c.bar() != 5) return "Trait super call fail. c.bar() is ${c.bar()}"
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user