summaryrefslogtreecommitdiff
path: root/test/files/neg
diff options
context:
space:
mode:
Diffstat (limited to 'test/files/neg')
-rw-r--r--test/files/neg/bug4851.check43
-rw-r--r--test/files/neg/bug4851.flags1
-rw-r--r--test/files/neg/bug4851/J.java15
-rw-r--r--test/files/neg/bug4851/J2.java11
-rw-r--r--test/files/neg/bug4851/S.scala23
5 files changed, 93 insertions, 0 deletions
diff --git a/test/files/neg/bug4851.check b/test/files/neg/bug4851.check
new file mode 100644
index 0000000000..8011350f23
--- /dev/null
+++ b/test/files/neg/bug4851.check
@@ -0,0 +1,43 @@
+S.scala:2: error: Adapting argument list by inserting (): leaky (Object-receiving) target makes this especially dangerous.
+ signature: J(x: Any): J
+ given arguments: <none>
+ after adaptation: new J((): Unit)
+ val x1 = new J
+ ^
+S.scala:3: error: Adapting argument list by inserting (): leaky (Object-receiving) target makes this especially dangerous.
+ signature: J(x: Any): J
+ given arguments: <none>
+ after adaptation: new J((): Unit)
+ val x2 = new J()
+ ^
+S.scala:4: error: Adapting argument list by creating a 5-tuple: this may not be what you want.
+ signature: J(x: Any): J
+ given arguments: 1, 2, 3, 4, 5
+ after adaptation: new J((1, 2, 3, 4, 5): (Int, Int, Int, Int, Int))
+ val x3 = new J(1, 2, 3, 4, 5)
+ ^
+S.scala:6: error: Adapting argument list by creating a 3-tuple: this may not be what you want.
+ signature: Some.apply[A](x: A): Some[A]
+ given arguments: 1, 2, 3
+ after adaptation: Some((1, 2, 3): (Int, Int, Int))
+ val y1 = Some(1, 2, 3)
+ ^
+S.scala:7: error: Adapting argument list by creating a 3-tuple: this may not be what you want.
+ signature: Some(x: A): Some[A]
+ given arguments: 1, 2, 3
+ after adaptation: new Some((1, 2, 3): (Int, Int, Int))
+ val y2 = new Some(1, 2, 3)
+ ^
+S.scala:9: error: Adapting argument list by inserting (): this is unlikely to be what you want.
+ signature: J2[T](x: T): J2[T]
+ given arguments: <none>
+ after adaptation: new J2((): Unit)
+ val z1 = new J2
+ ^
+S.scala:10: error: Adapting argument list by inserting (): this is unlikely to be what you want.
+ signature: J2[T](x: T): J2[T]
+ given arguments: <none>
+ after adaptation: new J2((): Unit)
+ val z2 = new J2()
+ ^
+7 errors found
diff --git a/test/files/neg/bug4851.flags b/test/files/neg/bug4851.flags
new file mode 100644
index 0000000000..0545cb8b84
--- /dev/null
+++ b/test/files/neg/bug4851.flags
@@ -0,0 +1 @@
+-Ywarn-adapted-args -Xfatal-warnings
diff --git a/test/files/neg/bug4851/J.java b/test/files/neg/bug4851/J.java
new file mode 100644
index 0000000000..9c35b8a16e
--- /dev/null
+++ b/test/files/neg/bug4851/J.java
@@ -0,0 +1,15 @@
+public class J {
+ Object x;
+
+ public J(Object x) {
+ this.x = x;
+ }
+
+ public J(int x1, int x2, int x3, int x4, int x5, int x6) {
+ this.x = null;
+ }
+
+ public String toString() {
+ return "J:" + x.getClass();
+ }
+} \ No newline at end of file
diff --git a/test/files/neg/bug4851/J2.java b/test/files/neg/bug4851/J2.java
new file mode 100644
index 0000000000..82954d9489
--- /dev/null
+++ b/test/files/neg/bug4851/J2.java
@@ -0,0 +1,11 @@
+public class J2<T> {
+ T x;
+
+ public <T> J(T x) {
+ this.x = x;
+ }
+
+ public String toString() {
+ return "J2:" + x.getClass();
+ }
+} \ No newline at end of file
diff --git a/test/files/neg/bug4851/S.scala b/test/files/neg/bug4851/S.scala
new file mode 100644
index 0000000000..deb42980ab
--- /dev/null
+++ b/test/files/neg/bug4851/S.scala
@@ -0,0 +1,23 @@
+object Test {
+ val x1 = new J
+ val x2 = new J()
+ val x3 = new J(1, 2, 3, 4, 5)
+
+ val y1 = Some(1, 2, 3)
+ val y2 = new Some(1, 2, 3)
+
+ val z1 = new J2
+ val z2 = new J2()
+ val z3 = new J2(())
+
+ def main(args: Array[String]): Unit = {
+ println(x1)
+ println(x2)
+ println(x3)
+ println(y1)
+
+ println(z1)
+ println(z2)
+ println(z3)
+ }
+}