diff options
Diffstat (limited to 'test/files/neg')
-rw-r--r-- | test/files/neg/lazyvals.check | 25 | ||||
-rw-r--r-- | test/files/neg/lazyvals.scala | 26 |
2 files changed, 51 insertions, 0 deletions
diff --git a/test/files/neg/lazyvals.check b/test/files/neg/lazyvals.check new file mode 100644 index 0000000000..c4daf9d842 --- /dev/null +++ b/test/files/neg/lazyvals.check @@ -0,0 +1,25 @@ +lazyvals.scala:6: error: lazy values may not be abstract + lazy val t: Int + ^ +lazyvals.scala:9: error: lazy not allowed here. Only vals can be lazy + lazy var p: Int = 100 + ^ +lazyvals.scala:12: error: lazy not allowed here. Only vals can be lazy + lazy def q: Double = 0.0 + ^ +lazyvals.scala:15: error: '=' expected but ';' found. + lazy val t; + ^ +lazyvals.scala:20: error: lazy not allowed here. Only vals can be lazy + lazy trait T {} + ^ +lazyvals.scala:21: error: lazy not allowed here. Only vals can be lazy + lazy class C {} + ^ +lazyvals.scala:22: error: lazy not allowed here. Only vals can be lazy + lazy object O {} + ^ +lazyvals.scala:25: error: lazy modifier not allowed here. Use call-by-name parameters instead + class A(lazy val obj: Object) {} + ^ +8 errors found diff --git a/test/files/neg/lazyvals.scala b/test/files/neg/lazyvals.scala new file mode 100644 index 0000000000..8514d42c13 --- /dev/null +++ b/test/files/neg/lazyvals.scala @@ -0,0 +1,26 @@ + +/** 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) {} +} |