diff options
author | Paul Phillips <paulp@improving.org> | 2010-08-07 19:36:38 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2010-08-07 19:36:38 +0000 |
commit | ed3dddae4e8b55917217b202f54d5b918ce4030e (patch) | |
tree | b24a8dae0b0ef840b44b13490d2dd6320f0e209f /test/files/neg | |
parent | f36ea69f64ef5c6024944ba9a7cecca2eb3e9af4 (diff) | |
download | scala-ed3dddae4e8b55917217b202f54d5b918ce4030e.tar.gz scala-ed3dddae4e8b55917217b202f54d5b918ce4030e.tar.bz2 scala-ed3dddae4e8b55917217b202f54d5b918ce4030e.zip |
Disallowed super.XX calls to Any methods which ...
Disallowed super.XX calls to Any methods which are presently either
crashing the compiler (isInstanceOf) or leading to runtime failure (==
and !=) in addition to one which was being rewritten to a this call but
makes more sense disallowed like the others (##).
Closes #3736, review by odersky.
Diffstat (limited to 'test/files/neg')
-rw-r--r-- | test/files/neg/bug3736.check | 13 | ||||
-rw-r--r-- | test/files/neg/bug3736.scala | 21 |
2 files changed, 34 insertions, 0 deletions
diff --git a/test/files/neg/bug3736.check b/test/files/neg/bug3736.check new file mode 100644 index 0000000000..8a91088914 --- /dev/null +++ b/test/files/neg/bug3736.check @@ -0,0 +1,13 @@ +bug3736.scala:4: error: super not allowed here: use this.isInstanceOf instead + def f2 = super.isInstanceOf[String] + ^ +bug3736.scala:6: error: super not allowed here: use this.== instead + def f4 = super.==(new AnyRef) + ^ +bug3736.scala:7: error: super not allowed here: use this.!= instead + def f5 = super.!=(new AnyRef) + ^ +bug3736.scala:8: error: super not allowed here: use this.## instead + def f6 = super.## + ^ +four errors found diff --git a/test/files/neg/bug3736.scala b/test/files/neg/bug3736.scala new file mode 100644 index 0000000000..8e63021f69 --- /dev/null +++ b/test/files/neg/bug3736.scala @@ -0,0 +1,21 @@ +object Test { + class A { + def f1 = super.toString + def f2 = super.isInstanceOf[String] + def f3 = super.asInstanceOf[AnyRef] + def f4 = super.==(new AnyRef) + def f5 = super.!=(new AnyRef) + def f6 = super.## + } + + def main(args: Array[String]): Unit = { + val x = new A + x.f1 + x.f2 + x.f3 + x.f4 + x.f5 + x.f6 + } +} + |