aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2017-03-12 11:54:48 +0100
committerMartin Odersky <odersky@gmail.com>2017-03-14 12:05:29 +0100
commit3826b7e16e5c6c353abe885ff53f3c70d73e41d0 (patch)
tree98549c414748af7b8afdf8aefc66c4933b0b7bd4 /tests
parent81086afc724aaa4b574dfcf6318905773fc5b2f1 (diff)
downloaddotty-3826b7e16e5c6c353abe885ff53f3c70d73e41d0.tar.gz
dotty-3826b7e16e5c6c353abe885ff53f3c70d73e41d0.tar.bz2
dotty-3826b7e16e5c6c353abe885ff53f3c70d73e41d0.zip
Test cases
Diffstat (limited to 'tests')
-rw-r--r--tests/neg/illegal-depmeth.scala13
-rw-r--r--tests/pos/param-depmeth.scala15
2 files changed, 28 insertions, 0 deletions
diff --git a/tests/neg/illegal-depmeth.scala b/tests/neg/illegal-depmeth.scala
new file mode 100644
index 000000000..e4d771a07
--- /dev/null
+++ b/tests/neg/illegal-depmeth.scala
@@ -0,0 +1,13 @@
+object Test {
+
+ class C { type T }
+
+ def f(x: C, y: x.T): x.T = y // ok
+
+ def g(y: x.T, x: C): x.T = y // error
+
+ def h(x: x.T) = ??? // error
+
+ def g(x: => C): x.T = ??? // error: x is not stable
+
+}
diff --git a/tests/pos/param-depmeth.scala b/tests/pos/param-depmeth.scala
new file mode 100644
index 000000000..2e887d181
--- /dev/null
+++ b/tests/pos/param-depmeth.scala
@@ -0,0 +1,15 @@
+object Test {
+
+ class C { type T }
+
+ def f(x: C, y: x.T): x.T = y // ok
+
+ val c = new C { type T = String }
+ val c2 = c
+
+ f(c, "abc")
+ f(new C{ type T = String}, "abc")
+
+ val d: (C{ type T = String}) # T = "abc"
+
+}