JS: move more test to box tests
This commit is contained in:
@@ -0,0 +1,10 @@
|
||||
package foo
|
||||
|
||||
class Box<T>(t: T) {
|
||||
var value = t
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
val box: Box<Int> = Box<Int>(1)
|
||||
return if (box.value == 1) "OK" else "fail"
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package foo
|
||||
|
||||
public fun <T> List<T>.some(): T = this[0]
|
||||
public fun String.some(): Char = this[0]
|
||||
public val <T> List<T>.some: T get() = this[1]
|
||||
public val String.some: Char get() = this[1]
|
||||
|
||||
fun box(): String {
|
||||
|
||||
val data = listOf("foo", "bar")
|
||||
|
||||
assertEquals("foo", data.some())
|
||||
assertEquals("bar", data.some)
|
||||
assertEquals('f', "foo".some())
|
||||
assertEquals('a', "bar".some)
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package foo
|
||||
|
||||
class A() {
|
||||
|
||||
fun eval() = 3
|
||||
fun eval(a: Int) = 4
|
||||
fun eval(a: String) = 5
|
||||
fun eval(a: String, b: Int) = 6
|
||||
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
|
||||
if (A().eval() != 3) return "fail1"
|
||||
if (A().eval(2) != 4) return "fail2"
|
||||
if (A().eval("3") != 5) return "fail3"
|
||||
if (A().eval("a", 3) != 6) return "fail4"
|
||||
|
||||
return "OK"
|
||||
}
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
package foo
|
||||
|
||||
interface TraitA
|
||||
interface TraitB
|
||||
|
||||
public open abstract class Node<T : TraitA>() where T : TraitB {
|
||||
public abstract fun bar(arg: T): String
|
||||
public abstract fun bar(arg: TraitA): String
|
||||
public abstract fun bar(arg: TraitB): String
|
||||
}
|
||||
|
||||
class ClassAB : TraitA, TraitB
|
||||
|
||||
public class MyNode : Node<ClassAB>() {
|
||||
override fun bar(arg: ClassAB): String = "MyNode.bar(ClassAB)"
|
||||
override fun bar(arg: TraitA): String = "MyNode.bar(TraitA)"
|
||||
override fun bar(arg: TraitB): String = "MyNode.bar(TraitB)"
|
||||
}
|
||||
|
||||
|
||||
fun box(): String {
|
||||
|
||||
var node = MyNode()
|
||||
val traitA: TraitA = ClassAB()
|
||||
val traitB: TraitB = ClassAB()
|
||||
assertEquals("MyNode.bar(ClassAB)", node.bar(ClassAB()))
|
||||
assertEquals("MyNode.bar(TraitA)", node.bar(traitA))
|
||||
assertEquals("MyNode.bar(TraitB)", node.bar(traitB))
|
||||
|
||||
return "OK"
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package foo
|
||||
|
||||
fun Int.foo() {
|
||||
}
|
||||
fun String.foo() {
|
||||
}
|
||||
|
||||
val Int.bar: Int get() = 1
|
||||
val String.bar: Int get() = 2
|
||||
|
||||
fun box(): String {
|
||||
val a = 43
|
||||
if (a.bar != 1) return "a.bar != 1, it: ${a.bar}"
|
||||
return "OK"
|
||||
}
|
||||
Reference in New Issue
Block a user