summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/files/neg/depmet_1.check10
-rw-r--r--test/files/neg/depmet_1.flags1
-rw-r--r--test/files/neg/depmet_1.scala5
-rw-r--r--test/files/pos/depmet_1.flags1
-rw-r--r--test/files/pos/depmet_1.scala6
-rw-r--r--test/files/pos/t1569.flags1
-rw-r--r--test/files/pos/t1569.scala5
-rw-r--r--test/files/run/constrained-types.check4
-rw-r--r--test/files/run/constrained-types.scala2
9 files changed, 32 insertions, 3 deletions
diff --git a/test/files/neg/depmet_1.check b/test/files/neg/depmet_1.check
new file mode 100644
index 0000000000..7a4f845fd5
--- /dev/null
+++ b/test/files/neg/depmet_1.check
@@ -0,0 +1,10 @@
+depmet_1.scala:2: error: illegal dependent method type: parameter appears in the type of another parameter in the same section or an earlier one
+ def precise0(y: x.type)(x: String): Unit = {}
+ ^
+depmet_1.scala:3: error: illegal dependent method type: parameter appears in the type of another parameter in the same section or an earlier one
+ def precise1(x: String, y: x.type): Unit = {}
+ ^
+depmet_1.scala:4: error: not found: value y
+ def precise2[T <: y.type](y: String): Unit = {}
+ ^
+three errors found
diff --git a/test/files/neg/depmet_1.flags b/test/files/neg/depmet_1.flags
new file mode 100644
index 0000000000..1c26b24745
--- /dev/null
+++ b/test/files/neg/depmet_1.flags
@@ -0,0 +1 @@
+-Ydependent-method-types \ No newline at end of file
diff --git a/test/files/neg/depmet_1.scala b/test/files/neg/depmet_1.scala
new file mode 100644
index 0000000000..fc672e1ed8
--- /dev/null
+++ b/test/files/neg/depmet_1.scala
@@ -0,0 +1,5 @@
+object Test {
+ def precise0(y: x.type)(x: String): Unit = {}
+ def precise1(x: String, y: x.type): Unit = {}
+ def precise2[T <: y.type](y: String): Unit = {}
+} \ No newline at end of file
diff --git a/test/files/pos/depmet_1.flags b/test/files/pos/depmet_1.flags
new file mode 100644
index 0000000000..1c26b24745
--- /dev/null
+++ b/test/files/pos/depmet_1.flags
@@ -0,0 +1 @@
+-Ydependent-method-types \ No newline at end of file
diff --git a/test/files/pos/depmet_1.scala b/test/files/pos/depmet_1.scala
new file mode 100644
index 0000000000..166e991817
--- /dev/null
+++ b/test/files/pos/depmet_1.scala
@@ -0,0 +1,6 @@
+object Test {
+ def precise(x: String)(y: x.type): x.type = y
+ val foo = "foo"
+ val fun : foo.type => foo.type = precise(foo)
+ val bar : foo.type = precise(foo)(foo)
+} \ No newline at end of file
diff --git a/test/files/pos/t1569.flags b/test/files/pos/t1569.flags
new file mode 100644
index 0000000000..1c26b24745
--- /dev/null
+++ b/test/files/pos/t1569.flags
@@ -0,0 +1 @@
+-Ydependent-method-types \ No newline at end of file
diff --git a/test/files/pos/t1569.scala b/test/files/pos/t1569.scala
new file mode 100644
index 0000000000..e5f9553268
--- /dev/null
+++ b/test/files/pos/t1569.scala
@@ -0,0 +1,5 @@
+object Bug {
+ class C { type T }
+ def foo(x: Int)(y: C)(z: y.T) {}
+ foo(3)(new C { type T = String })("hello")
+} \ No newline at end of file
diff --git a/test/files/run/constrained-types.check b/test/files/run/constrained-types.check
index cc00a7c46b..8050017659 100644
--- a/test/files/run/constrained-types.check
+++ b/test/files/run/constrained-types.check
@@ -52,8 +52,8 @@ val y = b.y // should keep the annotation
y: Int @Annot(Stuff.x) = 10
-----
-def m(x: String): String @Annot(x) = x // m should be annotated with a debruijn
-m: (x$0:String)String @Annot(x)
+def m(x: String): String @Annot(x) = x
+m: (x: String)String @Annot(x)
-----
val three = "three"
diff --git a/test/files/run/constrained-types.scala b/test/files/run/constrained-types.scala
index 59fd0b1b8c..c03c144ad1 100644
--- a/test/files/run/constrained-types.scala
+++ b/test/files/run/constrained-types.scala
@@ -45,7 +45,7 @@ object Test {
"val y = b.y // should keep the annotation",
- "def m(x: String): String @Annot(x) = x // m should be annotated with a debruijn",
+ "def m(x: String): String @Annot(x) = x",
"val three = \"three\"",
"val three2 = m(three:three.type) // should change x to three",
"var four = \"four\"",