blob: f92534f506917eb45b7eec00d9178ee4820a4cf4 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
/** 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 }
}
}
|