diff options
author | Aleksandar <aleksandar@htpc.(none)> | 2012-07-19 14:33:07 +0200 |
---|---|---|
committer | Aleksandar <aleksandar@htpc.(none)> | 2012-07-19 14:33:32 +0200 |
commit | 227239018b38ab7218ee6b30493c9c8e1836c8c9 (patch) | |
tree | 1ca54e040ce5cde7930bb51c553cc218c3fb05e8 /test/files | |
parent | 892ee3df93a10ffe24fb11b37ad7c3a9cb93d5de (diff) | |
download | scala-227239018b38ab7218ee6b30493c9c8e1836c8c9.tar.gz scala-227239018b38ab7218ee6b30493c9c8e1836c8c9.tar.bz2 scala-227239018b38ab7218ee6b30493c9c8e1836c8c9.zip |
WIP add private/lazy checks and a few tests.
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/neg/static-annot.check | 11 | ||||
-rw-r--r-- | test/files/neg/static-annot.scala | 14 | ||||
-rw-r--r-- | test/files/run/static-annot/field.scala | 38 |
3 files changed, 62 insertions, 1 deletions
diff --git a/test/files/neg/static-annot.check b/test/files/neg/static-annot.check index 80aebcd406..66efebdcee 100644 --- a/test/files/neg/static-annot.check +++ b/test/files/neg/static-annot.check @@ -4,7 +4,16 @@ static-annot.scala:8: error: Only members of top-level objects and their nested static-annot.scala:27: error: @static annotated field bar has the same name as a member of class Conflicting @static val bar = 1 ^ +static-annot.scala:37: error: The @static annotation is only allowed on public members. + @static private val bar = 1 + ^ +static-annot.scala:38: error: The @static annotation is only allowed on public members. + @static private val baz = 2 + ^ +static-annot.scala:39: error: The @static annotation is not allowed on lazy members. + @static lazy val bam = 3 + ^ static-annot.scala:14: error: Only members of top-level objects and their nested objects can be annotated with @static. @static val blah = 2 ^ -three errors found
\ No newline at end of file +6 errors found
\ No newline at end of file diff --git a/test/files/neg/static-annot.scala b/test/files/neg/static-annot.scala index b8c4651076..c6c626d42b 100644 --- a/test/files/neg/static-annot.scala +++ b/test/files/neg/static-annot.scala @@ -31,3 +31,17 @@ object Conflicting { class Conflicting { val bar = 45 } + + +object PrivateProtectedLazy { + @static private val bar = 1 + @static private val baz = 2 + @static lazy val bam = 3 +} + + +class PrivateProtectedLazy { + println(PrivateProtectedLazy.bar) + println(PrivateProtectedLazy.baz) + println(PrivateProtectedLazy.bam) +} diff --git a/test/files/run/static-annot/field.scala b/test/files/run/static-annot/field.scala index 0677082cf6..a7d8158321 100644 --- a/test/files/run/static-annot/field.scala +++ b/test/files/run/static-annot/field.scala @@ -182,6 +182,43 @@ object Test7 extends Check { +/* TEST 8 */ + +object Foo8 { + @static val field = 7 + + val function: () => Int = () => { + field + 1 + } + + val anon = new Runnable { + def run() { + assert(field == 7, "runnable asserting field is 7") + } + } + + @static var mutable = 10 + + val mutation: () => Unit = () => { + mutable += 1 + } +} + +object Test8 { + def test() { + assert(Foo8.function() == 8, "function must return 8") + Foo8.anon.run() + assert(Foo8.mutable == 10, "mutable is 10") + Foo8.mutation() + assert(Foo8.mutable == 11, "mutable is 11") + Foo8.mutation() + assert(Foo8.mutable == 12, "mutable is 12") + } +} + + + + /* main */ object Test { @@ -194,6 +231,7 @@ object Test { Test5.test() Test6.test() Test7.test() + Test8.test() } } |