summaryrefslogtreecommitdiff
path: root/test-nsc
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2005-11-28 11:58:36 +0000
committermichelou <michelou@epfl.ch>2005-11-28 11:58:36 +0000
commit653d8ffab28acee731fa8fd26152f35fa7f4874a (patch)
tree3236043ff73a3e2582f121a13b29429a3faa3838 /test-nsc
parent959a8f05207410211655cbc47b8f01282e7dc4a1 (diff)
downloadscala-653d8ffab28acee731fa8fd26152f35fa7f4874a.tar.gz
scala-653d8ffab28acee731fa8fd26152f35fa7f4874a.tar.bz2
scala-653d8ffab28acee731fa8fd26152f35fa7f4874a.zip
*** empty log message ***
Diffstat (limited to 'test-nsc')
-rw-r--r--test-nsc/files/neg/variances.check4
-rw-r--r--test-nsc/files/neg/variances.scala4
-rw-r--r--test-nsc/files/pos/variances.scala8
3 files changed, 16 insertions, 0 deletions
diff --git a/test-nsc/files/neg/variances.check b/test-nsc/files/neg/variances.check
new file mode 100644
index 0000000000..6f161c18c6
--- /dev/null
+++ b/test-nsc/files/neg/variances.check
@@ -0,0 +1,4 @@
+variances.scala:2 error: covariant type a occurs in contravariant position in type Vector[a] of value x
+ def append(x: Vector[a]): Vector[a]
+ ^
+one error found
diff --git a/test-nsc/files/neg/variances.scala b/test-nsc/files/neg/variances.scala
new file mode 100644
index 0000000000..ebcba21611
--- /dev/null
+++ b/test-nsc/files/neg/variances.scala
@@ -0,0 +1,4 @@
+trait Vector[+a] {
+ def append(x: Vector[a]): Vector[a]
+}
+
diff --git a/test-nsc/files/pos/variances.scala b/test-nsc/files/pos/variances.scala
new file mode 100644
index 0000000000..7dc56b0225
--- /dev/null
+++ b/test-nsc/files/pos/variances.scala
@@ -0,0 +1,8 @@
+abstract class P[+a, +b] { // SLS, Example 4.4.2
+ def fst: a;
+ def snd: b
+}
+
+trait Vector[+a] { // SLS, Example 4.4.3 b)
+ def append[b >: a](x: Vector[b]): Vector[b]
+}