diff options
author | Iulian Dragos <jaguarul@gmail.com> | 2007-06-27 14:26:47 +0000 |
---|---|---|
committer | Iulian Dragos <jaguarul@gmail.com> | 2007-06-27 14:26:47 +0000 |
commit | b4b91dcb58b5804f7ec1513e8f4d1e4534fd8018 (patch) | |
tree | 758a2817dd728101980c7ffc3f206d484ad77ba0 /test/files/neg | |
parent | a1ec75c2642396a83854510ba7e88d8a302a67fd (diff) | |
download | scala-b4b91dcb58b5804f7ec1513e8f4d1e4534fd8018.tar.gz scala-b4b91dcb58b5804f7ec1513e8f4d1e4534fd8018.tar.bz2 scala-b4b91dcb58b5804f7ec1513e8f4d1e4534fd8018.zip |
Merged lazy values branch to trunk.
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) {} +} |