diff options
author | Paul Phillips <paulp@improving.org> | 2011-07-29 15:38:50 +0000 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2011-07-29 15:38:50 +0000 |
commit | 4e488a60594664046c3449e1aa2239adca7a012e (patch) | |
tree | e02baffa12f57600c28e0109adf66e4ac0a00920 /test/files/neg/bug4851 | |
parent | cda84e7f2145673e4e14cb886598fe19cd48585a (diff) | |
download | scala-4e488a60594664046c3449e1aa2239adca7a012e.tar.gz scala-4e488a60594664046c3449e1aa2239adca7a012e.tar.bz2 scala-4e488a60594664046c3449e1aa2239adca7a012e.zip |
Added two new compiler options:
-Ywarn-adapted-args // also included in -Xlint
-Yno-adapted-args
The former warns when a () is inserted or an argument list is implicitly
tupled. The latter errors under the same conditions. Using these options
I found several bugs in the distribution which would otherwise be nearly
impossible to spot. These bugs were innocuous (I think) but similar bugs
could easily be (and have been) otherwise.
Certain particularly threatening scenarios are at minimum warned about
regardless of options given. Closes SI-4851, no review.
Diffstat (limited to 'test/files/neg/bug4851')
-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 |
3 files changed, 49 insertions, 0 deletions
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) + } +} |