TEST:objects and companion objects.

This commit is contained in:
Vasily Levchenko
2016-12-01 18:43:32 +03:00
committed by vvlevchenko
parent 618bf4cb80
commit 8892986be3
2 changed files with 59 additions and 0 deletions
+15
View File
@@ -663,3 +663,18 @@ task main_exception(type: RunKonanTest) {
source = "runtime/basic/main_exception.kt"
}
task initializers0(type: RunKonanTest) {
goldValue = "main\n" +
"B::constructor(1)\n" +
"A::companion\n" +
"A::companion::foo\n" +
"A::companion::foo\n" +
"B::constructor(0)\n" +
"B::constructor()\n" +
"A::Obj\n" +
"A::AObj::foo\n" +
"A::AObj::foo\n"
source = "runtime/basic/initializers0.kt"
}
@@ -0,0 +1,44 @@
class A {
init{
println ("A::init")
}
val a = 1
companion object :B(1) {
init {
println ("A::companion")
}
fun foo() {
println("A::companion::foo")
}
}
object AObj : B(){
init {
println("A::Obj")
}
fun foo() {
println("A::AObj::foo")
}
}
}
fun main(args:Array<String>) {
println("main")
A.foo()
A.foo()
A.AObj.foo()
A.AObj.foo()
}
open class B(val a:Int, val b:Int) {
constructor(a:Int):this (a, 0) {
println("B::constructor(" + a.toString()+ ")")
}
constructor():this(0) {
println("B::constructor()")
}
}