summaryrefslogtreecommitdiff
path: root/test/files/neg/t6483.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2012-10-07 15:16:31 +0200
committerJason Zaugg <jzaugg@gmail.com>2012-10-07 17:17:24 +0200
commit1b2ac4e618fd3e95efdeb965b0deebc2c5f78580 (patch)
tree8a83a7581bdb4493fa1a17cae4eefeb03b269e78 /test/files/neg/t6483.scala
parentbfde8c79cf68541e29e60d22371bcc4669be7b83 (diff)
downloadscala-1b2ac4e618fd3e95efdeb965b0deebc2c5f78580.tar.gz
scala-1b2ac4e618fd3e95efdeb965b0deebc2c5f78580.tar.bz2
scala-1b2ac4e618fd3e95efdeb965b0deebc2c5f78580.zip
SI-6483 Prohibit super[T] references in value classes.
This seems the safest course of action for 2.10.0.
Diffstat (limited to 'test/files/neg/t6483.scala')
-rw-r--r--test/files/neg/t6483.scala24
1 files changed, 24 insertions, 0 deletions
diff --git a/test/files/neg/t6483.scala b/test/files/neg/t6483.scala
new file mode 100644
index 0000000000..bd99f68fa4
--- /dev/null
+++ b/test/files/neg/t6483.scala
@@ -0,0 +1,24 @@
+trait T extends Any {
+ def foo = 1
+ type X
+}
+
+class C1(val a: Any) extends AnyVal with T {
+ override def foo = super[T].foo // error
+}
+
+class C2(val a: Int) extends AnyVal with T {
+ override def foo = super.foo + a // okay
+}
+
+class C3(val a: Int) extends AnyVal with T {
+ override def foo = C3.super.foo + a // okay
+}
+
+class C4(val a: Int) extends AnyVal with T {
+ def foo {
+ class Inner extends T {
+ override def foo = super[T].foo + a // no (direct) error, other than that a nested class is currently illegal.
+ }
+ }
+}