aboutsummaryrefslogtreecommitdiff
path: root/tests/neg/overrides.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2017-01-29 17:54:30 +1100
committerGuillaume Martres <smarter@ubuntu.com>2017-01-29 14:44:30 +0100
commit56fb15888fb98e3a6a535f5734bb8ce82fcd76c3 (patch)
treec1e01cce8a76a5e66ba2a54472bc899ae41ca405 /tests/neg/overrides.scala
parent6e8933ccc40bbfe1a92c32c2d8314fd6facef12a (diff)
downloaddotty-56fb15888fb98e3a6a535f5734bb8ce82fcd76c3.tar.gz
dotty-56fb15888fb98e3a6a535f5734bb8ce82fcd76c3.tar.bz2
dotty-56fb15888fb98e3a6a535f5734bb8ce82fcd76c3.zip
Fix #1750: Handle illegal class overrides better
Illegal class overrides are fundamentally at odds with the way dotty represents types and therefore can cause lots of low-level problems. Two measures in this commit First, we detect direct illegal class overrides on completion instead of during RefChecks. Break the override by making the previously overriding type private. This fixes i1750.scala, but still fails for indirect overrides between two unrelated outer traits/classes that are inherited by the same class or trait. We fix this by catching the previously thrown ClassCastException in both ExtractAPI and RefChecks. Test case for indirect overrides is in i1750a.scala.
Diffstat (limited to 'tests/neg/overrides.scala')
-rw-r--r--tests/neg/overrides.scala5
1 files changed, 0 insertions, 5 deletions
diff --git a/tests/neg/overrides.scala b/tests/neg/overrides.scala
index 81a93a7a2..149220bd5 100644
--- a/tests/neg/overrides.scala
+++ b/tests/neg/overrides.scala
@@ -34,11 +34,6 @@ package p2 { // all being in the same package compiles fine
}
}
- abstract class T3 extends T2 {
- class A { // error: classes cannot be overridden
- bug()
- }
- }
}
class A[T] {