diff options
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/neg/bug4851.check | 43 | ||||
-rw-r--r-- | test/files/neg/bug4851.flags | 1 | ||||
-rw-r--r-- | test/files/neg/bug4851/J.java | 15 | ||||
-rw-r--r-- | test/files/neg/bug4851/J2.java | 11 | ||||
-rw-r--r-- | test/files/neg/bug4851/S.scala | 23 |
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) + } +} |