summaryrefslogtreecommitdiff
path: root/test/files/run/typealias_overriding.scala
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2007-04-24 15:17:49 +0000
committerAdriaan Moors <adriaan.moors@epfl.ch>2007-04-24 15:17:49 +0000
commit1f5dfbd7a6ca915ceb8a5794be568cfab8f97e47 (patch)
tree9475fcff0a26e0d02469616e024f3a15c5c9d7c8 /test/files/run/typealias_overriding.scala
parente4c282d9ef2e068701dd2eecec84ed8af84ae9e5 (diff)
downloadscala-1f5dfbd7a6ca915ceb8a5794be568cfab8f97e47.tar.gz
scala-1f5dfbd7a6ca915ceb8a5794be568cfab8f97e47.tar.bz2
scala-1f5dfbd7a6ca915ceb8a5794be568cfab8f97e47.zip
fixed bug 1065
This was caused by the Uncurry phase not fully expanding alias types. More specifically, the argument&result types of anonymous functions (Function node) weren't normalized. Presumably other combinations weren't covered either. These should now be fixed.
Diffstat (limited to 'test/files/run/typealias_overriding.scala')
-rw-r--r--test/files/run/typealias_overriding.scala23
1 files changed, 23 insertions, 0 deletions
diff --git a/test/files/run/typealias_overriding.scala b/test/files/run/typealias_overriding.scala
new file mode 100644
index 0000000000..03330498eb
--- /dev/null
+++ b/test/files/run/typealias_overriding.scala
@@ -0,0 +1,23 @@
+// this bug (http://scala-webapps.epfl.ch/bugtracking/bugs/displayItem.do?id=1065)
+// was caused by Uncurry not normalizing all the types
+// (more specifically the argument/return types of an anonymous Function)
+object Test extends Application {
+ trait AddRemove {
+ type TNode <: NodeImpl;
+ trait NodeImpl;
+
+ object removing {
+ type TNode = AddRemove.this.TNode;
+ def printNode(node: TNode, f: TNode => String) = Console.println(f(node))
+ }
+ }
+
+ class Linked extends AddRemove {
+ type TNode = Node // can also directly write `class Node extends super.NodeImpl' -- doesn't change the bug
+ class Node extends super.NodeImpl { override def toString = "LinkedNode" }
+
+ removing.printNode(new Node, (x: removing.TNode) => x.toString) // make inference explicit, doesn't affect the bug
+ }
+
+ new Linked
+} \ No newline at end of file