summaryrefslogtreecommitdiff
path: root/test/files/pos/tcpoly_typesub.scala
diff options
context:
space:
mode:
authorAdriaan Moors <adriaan.moors@epfl.ch>2007-04-06 09:39:53 +0000
committerAdriaan Moors <adriaan.moors@epfl.ch>2007-04-06 09:39:53 +0000
commitf96b6beefc08f56218ac68b37a4cecd757cb60ee (patch)
tree2001a44efae7ddd1699520d3855598ef13e30803 /test/files/pos/tcpoly_typesub.scala
parent10a651a13c323366223160bfa1b4fe8a6e818d1d (diff)
downloadscala-f96b6beefc08f56218ac68b37a4cecd757cb60ee.tar.gz
scala-f96b6beefc08f56218ac68b37a4cecd757cb60ee.tar.bz2
scala-f96b6beefc08f56218ac68b37a4cecd757cb60ee.zip
adding test files from tcpoly branch without hi...
adding test files from tcpoly branch without history -- much faster this way, sorry
Diffstat (limited to 'test/files/pos/tcpoly_typesub.scala')
-rw-r--r--test/files/pos/tcpoly_typesub.scala14
1 files changed, 14 insertions, 0 deletions
diff --git a/test/files/pos/tcpoly_typesub.scala b/test/files/pos/tcpoly_typesub.scala
new file mode 100644
index 0000000000..bb29d88bd9
--- /dev/null
+++ b/test/files/pos/tcpoly_typesub.scala
@@ -0,0 +1,14 @@
+// contributed by Lauri Alanko
+trait TypeSub {
+ type l
+ type u
+ def castSub[f[+x]](fl : f[l]) : f[u]
+ def castSuper[f[-x]](fu : f[u]) : f[l] = {
+ type c[+y] = f[y] => f[l]
+ castSub[c]{ fl : f[l] => fl }(fu)
+ }
+ def castValue[t](lt : l with t) : u with t = {
+ type c[+y] = y with t
+ castSub[c](lt)
+ }
+} \ No newline at end of file