diff options
author | Aleksandar Prokopec <axel22@gmail.com> | 2012-08-14 18:00:23 +0200 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-08-17 06:40:00 -0700 |
commit | 5a8dfad583b825158cf0abdae5d73a4a7f8cd997 (patch) | |
tree | ede2216c999babc5e10f9c364f22c7732c9b033f /test | |
parent | e6c0439f1ca4270f28def98821def7b10ae84ec8 (diff) | |
download | scala-5a8dfad583b825158cf0abdae5d73a4a7f8cd997.tar.gz scala-5a8dfad583b825158cf0abdae5d73a4a7f8cd997.tar.bz2 scala-5a8dfad583b825158cf0abdae5d73a4a7f8cd997.zip |
Fixes SI-6189.
Disable @static for the REPL code.
The problem is that there are no companion classes generated for objects
that contain the top-level declarations in the REPL.
When there is no companion class, the selecting a @static field will translate
to a getter call, instead of to a field load.
Diffstat (limited to 'test')
-rw-r--r-- | test/files/neg/static-annot.scala | 6 | ||||
-rw-r--r-- | test/files/run/static-annot-repl.check | 32 | ||||
-rw-r--r-- | test/files/run/static-annot-repl.scala | 22 |
3 files changed, 60 insertions, 0 deletions
diff --git a/test/files/neg/static-annot.scala b/test/files/neg/static-annot.scala index c6c626d42b..c0b5ed30d8 100644 --- a/test/files/neg/static-annot.scala +++ b/test/files/neg/static-annot.scala @@ -45,3 +45,9 @@ class PrivateProtectedLazy { println(PrivateProtectedLazy.baz) println(PrivateProtectedLazy.bam) } + + +class StaticDef { + // this should not crash the compiler + @static def x = 42 +} diff --git a/test/files/run/static-annot-repl.check b/test/files/run/static-annot-repl.check new file mode 100644 index 0000000000..d1029a9809 --- /dev/null +++ b/test/files/run/static-annot-repl.check @@ -0,0 +1,32 @@ +Type in expressions to have them evaluated. +Type :help for more information. + +scala> + +scala> import annotation.static +import annotation.static + +scala> @static var x1 = 42 +x1: Int = 42 + +scala> @static val x2 = 43 +x2: Int = 43 + +scala> @static def x3 = 44 +x3: Int + +scala> x1 +res0: Int = 42 + +scala> x2 +res1: Int = 43 + +scala> x3 +res2: Int = 44 + +scala> class Test { + @static def x = 42 +} +defined class Test + +scala>
\ No newline at end of file diff --git a/test/files/run/static-annot-repl.scala b/test/files/run/static-annot-repl.scala new file mode 100644 index 0000000000..1d2e9b2d7e --- /dev/null +++ b/test/files/run/static-annot-repl.scala @@ -0,0 +1,22 @@ + + + +import scala.tools.partest.ReplTest + + + +object Test extends ReplTest { + def code = """ +import annotation.static +@static var x1 = 42 +@static val x2 = 43 +@static def x3 = 44 +x1 +x2 +x3 +class Test { + @static def x = 42 +} +""" + +} |