summaryrefslogtreecommitdiff
path: root/test/files/pos/tcpoly_typesub.scala
diff options
context:
space:
mode:
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