aboutsummaryrefslogtreecommitdiff
path: root/tests/pos/prefix.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2014-11-24 18:49:20 +0100
committerMartin Odersky <odersky@gmail.com>2014-11-24 19:01:22 +0100
commit48f78cd66df9f6cd31201ba79b02891a99f1dfbe (patch)
tree41b9dde3dc7937140548deba81acc213fc33bf30 /tests/pos/prefix.scala
parent642c5e4500abfc5cef51eee7ed0a98930a24312f (diff)
downloaddotty-48f78cd66df9f6cd31201ba79b02891a99f1dfbe.tar.gz
dotty-48f78cd66df9f6cd31201ba79b02891a99f1dfbe.tar.bz2
dotty-48f78cd66df9f6cd31201ba79b02891a99f1dfbe.zip
Simpler cycle detection
Turns out that the last commit was a red herring. None of the hoops it jumped though was necessary. Instead there was a bug in isRef which caused `&` to erroneously compute T & Int as Int. The bug was that we always approximated alias types by their high bound. But in the present case, this leads to errors because U gets 'bounds >: Nothing <: Any', but it was still an alias type (i.e. its Deferred flag is not set). The fix dereferences aliases only if their info is a TypeAlias.
Diffstat (limited to 'tests/pos/prefix.scala')
-rw-r--r--tests/pos/prefix.scala5
1 files changed, 5 insertions, 0 deletions
diff --git a/tests/pos/prefix.scala b/tests/pos/prefix.scala
new file mode 100644
index 000000000..e18eaa50f
--- /dev/null
+++ b/tests/pos/prefix.scala
@@ -0,0 +1,5 @@
+
+abstract class ClassPath {
+ type AnyClassRep = ClassPath#ClassRep
+ type ClassRep
+}