[#1194] | project: compiler | priority: medium | category: bug | |
---|---|---|---|---|
submitter | assigned to | status | date submitted | |
Stephane | Iulian | fixed | 2007-07-02 14:03:28.0 | |
subject | Overriding lazy values | |||
code |
class A { val x: Int = { print("/*A.x*/"); 2 } lazy val y: Int = { print("/*A.y*/"); 2 } } class B extends A { override val x: Int = { print("/*B.x*/"); 3 } override lazy val y: Int = { print("/*B.y*/"); 3 } } object test extends Application { val a = new A print("a.x=") println(a.x) val b = new B print("b.x=") println(b.x) } |
|||
what happened | test.scala:8: error: error overriding variable y in class A of type Int; variable y cannot override a mutable variable override lazy val y: Int = { print("/*B.y*/"); 3 } ^ one error found |
|||
what expected | No error (?!) or at least a better error message | |||
[back to overview] |
Iulian edited on 2007-07-02 15:40:49.0 |
It's allowed now. Lazy values behave as normal values w.r.t. to overriding rules. |