blob: bbc4fe114ab554e79dcd33445ccf377feb2f7a94 (
plain) (
tree)
|
|
/** Test which should fail compilation */
class Lazy {
// no abstract lazy values
lazy val t: Int
// no lazy var
lazy var p: Int = 100
// no lazy defs
lazy def q: Double = 0.0
def foo {
lazy val t;
()
}
// no trait/class/object can be lazy
lazy trait T {}
lazy class C {}
lazy object O {}
// no lazy modifiers in class parameters
class A(lazy val obj: Object) {}
}
object T2 {
class A {
val x: Int = { print("/*A.x*/"); 2 }
lazy val y: Int = { print("/*A.y*/"); 2 }
}
class B extends A {
// lazy overrides strict val
override lazy val x: Int = { print("/*B.x*/"); 3 }
// strict val overrides lazy
override val y: Int = { print("/*B.y*/"); 3 }
}
}
|