diff options
author | Paul Phillips <paulp@improving.org> | 2012-02-04 14:36:14 -0800 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2012-02-04 17:36:31 -0800 |
commit | c6a783ac089d8cf5a60a98946af5e80aff5a7d32 (patch) | |
tree | 2f081bad580c0fcb45b2a0ecb0e4bcc225879bbb /test | |
parent | 513710c5277ef8870ba3f5c7c9bebe40068ce4af (diff) | |
download | scala-c6a783ac089d8cf5a60a98946af5e80aff5a7d32.tar.gz scala-c6a783ac089d8cf5a60a98946af5e80aff5a7d32.tar.bz2 scala-c6a783ac089d8cf5a60a98946af5e80aff5a7d32.zip |
Making AnyVal into a class instead of a trait.
-- traits can extend Any, AnyRef, or AnyVal
-- classes can extend AnyRef or AnyVal but not Any.
This breaks reflection for the moment as it smuggles AnyVal so far
downstream that it's reflecting its way into bytecode (or something)
but the following test case goes five for six as anticipated.
trait Foo1 extends Any
trait Foo2 extends AnyVal
trait Foo3 extends AnyRef
class Bar1 extends Any // fail
@inline class Bar2 extends AnyVal
class Bar3 extends AnyRef
Eliminated various hijinx from definitions.
Diffstat (limited to 'test')
-rw-r--r-- | test/files/neg/anyval-anyref-parent.check | 4 | ||||
-rw-r--r-- | test/files/neg/anyval-anyref-parent.scala | 7 |
2 files changed, 11 insertions, 0 deletions
diff --git a/test/files/neg/anyval-anyref-parent.check b/test/files/neg/anyval-anyref-parent.check new file mode 100644 index 0000000000..b40a0f2710 --- /dev/null +++ b/test/files/neg/anyval-anyref-parent.check @@ -0,0 +1,4 @@ +anyval-anyref-parent.scala:5: error: Any does not have a constructor +class Bar1 extends Any // fail + ^ +one error found diff --git a/test/files/neg/anyval-anyref-parent.scala b/test/files/neg/anyval-anyref-parent.scala new file mode 100644 index 0000000000..b7bb122ea8 --- /dev/null +++ b/test/files/neg/anyval-anyref-parent.scala @@ -0,0 +1,7 @@ +trait Foo1 extends Any +trait Foo2 extends AnyVal +trait Foo3 extends AnyRef + +class Bar1 extends Any // fail +@inline class Bar2 extends AnyVal +class Bar3 extends AnyRef |