diff options
Diffstat (limited to 'test/files/pos/tcpoly_typesub.scala')
-rw-r--r-- | test/files/pos/tcpoly_typesub.scala | 14 |
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 |