summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/files/neg/saito.check4
-rw-r--r--test/files/neg/saito.scala14
-rw-r--r--test/files/res/bug687.check2
3 files changed, 19 insertions, 1 deletions
diff --git a/test/files/neg/saito.check b/test/files/neg/saito.check
new file mode 100644
index 0000000000..142ed903cc
--- /dev/null
+++ b/test/files/neg/saito.check
@@ -0,0 +1,4 @@
+saito.scala:10: error: class A cannot be instantiated because it does not conform to its self-type B
+ val a: A = new A; // should not be allowed
+ ^
+one error found
diff --git a/test/files/neg/saito.scala b/test/files/neg/saito.scala
new file mode 100644
index 0000000000..a8bcc79d65
--- /dev/null
+++ b/test/files/neg/saito.scala
@@ -0,0 +1,14 @@
+class B {}
+class A requires B {
+ def m(): B = {
+ this
+ }
+}
+
+object Exec{
+ def main(args: Array[String]): Unit = {
+ val a: A = new A; // should not be allowed
+ val b: B = a.m();
+ }
+}
+
diff --git a/test/files/res/bug687.check b/test/files/res/bug687.check
index 7bea791077..52f80bbe27 100644
--- a/test/files/res/bug687.check
+++ b/test/files/res/bug687.check
@@ -1,6 +1,6 @@
nsc>
-nsc> bug687/QueryB.scala:3 error: name clash between defined and inherited member:
+nsc> bug687/QueryB.scala:3: error: name clash between defined and inherited member:
method equals:(java.lang.Object)scala.Boolean and
method equals:(scala.Any)scala.Boolean in class Any
have same type after erasure: (java.lang.Object)scala.Boolean