diff options
-rw-r--r-- | test-nsc/files/neg/variances.check | 4 | ||||
-rw-r--r-- | test-nsc/files/neg/variances.scala | 4 | ||||
-rw-r--r-- | test-nsc/files/pos/variances.scala | 8 |
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] +} |