aboutsummaryrefslogtreecommitdiff
path: root/tests/untried/neg/tcpoly_variance_enforce.scala
diff options
context:
space:
mode:
authorSamuel Gruetter <samuel.gruetter@epfl.ch>2014-03-12 22:44:33 +0100
committerSamuel Gruetter <samuel.gruetter@epfl.ch>2014-03-12 22:44:33 +0100
commit9ef5f6817688f814a3450126aa7383b0928e80a0 (patch)
tree5727a2f7f7fd665cefdb312af2785c692f04377c /tests/untried/neg/tcpoly_variance_enforce.scala
parent194be919664447631ba55446eb4874979c908d27 (diff)
downloaddotty-9ef5f6817688f814a3450126aa7383b0928e80a0.tar.gz
dotty-9ef5f6817688f814a3450126aa7383b0928e80a0.tar.bz2
dotty-9ef5f6817688f814a3450126aa7383b0928e80a0.zip
add tests from scala/test/files/{pos,neg}
with explicit Unit return type
Diffstat (limited to 'tests/untried/neg/tcpoly_variance_enforce.scala')
-rw-r--r--tests/untried/neg/tcpoly_variance_enforce.scala42
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/untried/neg/tcpoly_variance_enforce.scala b/tests/untried/neg/tcpoly_variance_enforce.scala
new file mode 100644
index 000000000..ddff0e9f9
--- /dev/null
+++ b/tests/untried/neg/tcpoly_variance_enforce.scala
@@ -0,0 +1,42 @@
+trait coll[m[+x]]
+
+trait coll2[m[-x]]
+
+trait coll3[m[x]]
+
+trait coll4[m[x <: y], y]
+
+class FooInvar[x]
+class FooContra[-x]
+class FooCov[+x]
+class FooString[+x <: String]
+
+object fcollok extends coll[FooCov]
+object fcollinv extends coll[FooInvar] // error
+object fcollcon extends coll[FooContra] // error
+object fcollwb extends coll[FooString] // error
+
+object fcoll2ok extends coll2[FooCov] // error
+object fcoll2inv extends coll2[FooInvar] // error
+object fcoll2con extends coll2[FooContra]
+object fcoll2wb extends coll2[FooString] // error
+
+object fcoll3ok extends coll3[FooCov]
+object fcoll3inv extends coll3[FooInvar]
+object fcoll3con extends coll3[FooContra]
+object fcoll3wb extends coll3[FooString] // error
+
+object fcoll4ok extends coll4[FooString, String]
+object fcoll4_1 extends coll4[FooString, Int] // error
+object fcoll4_2 extends coll4[FooString, Any] // error
+
+
+object test {
+ var ok: coll[FooCov] = _
+
+ def x: coll[FooInvar] = sys.error("foo") // error
+ def y: coll[FooContra] = sys.error("foo") // error
+}
+
+
+// TODO: need test for rank N with N >: 2