summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJosh Suereth <joshua.suereth@gmail.com>2012-06-13 20:26:59 -0400
committerJosh Suereth <joshua.suereth@gmail.com>2012-06-13 20:26:59 -0400
commit970b7a168b211d22b452306cecaefd56db8438e8 (patch)
tree076919c3dadcd21e158ff472ac8e39ae6a5306ac
parent456799bf08d27e1572a479c6b8d09a7d2d2445a0 (diff)
parent1c2d466804b22f388ab4d66a034327539ac2e50f (diff)
downloadscala-970b7a168b211d22b452306cecaefd56db8438e8.tar.gz
scala-970b7a168b211d22b452306cecaefd56db8438e8.tar.bz2
scala-970b7a168b211d22b452306cecaefd56db8438e8.zip
Merge branch 'master' into sbt-reflecton-fix
-rw-r--r--build.xml4
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/Infer.scala3
-rw-r--r--src/library/scala/util/control/Breaks.scala2
-rw-r--r--test/files/pos/nonlocal-unchecked.flags1
-rw-r--r--test/files/pos/nonlocal-unchecked.scala6
5 files changed, 12 insertions, 4 deletions
diff --git a/build.xml b/build.xml
index b5f5d07e54..4929a11883 100644
--- a/build.xml
+++ b/build.xml
@@ -487,7 +487,7 @@ LOCAL DEPENDENCY (FORKJOIN)
includes="**/*.java"
debug="true"
target="1.5" source="1.5">
- <compilerarg line="${javac.args}"/>
+ <compilerarg line="${javac.args} -XDignore.symbol.file"/>
</javac>
<touch file="${build-libs.dir}/forkjoin.complete" verbose="no"/>
</target>
@@ -532,7 +532,7 @@ LOCAL DEPENDENCY (FJBG)
includes="**/*.java"
debug="true"
target="1.5" source="1.4">
- <compilerarg line="${javac.args}"/>
+ <compilerarg line="${javac.args} -XDignore.symbol.file"/>
</javac>
<touch file="${build-libs.dir}/fjbg.complete" verbose="no"/>
</target>
diff --git a/src/compiler/scala/tools/nsc/typechecker/Infer.scala b/src/compiler/scala/tools/nsc/typechecker/Infer.scala
index 9e371dd2dd..688dcd91ac 100644
--- a/src/compiler/scala/tools/nsc/typechecker/Infer.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/Infer.scala
@@ -1276,7 +1276,8 @@ trait Infer {
} else {
for (arg <- args) {
if (sym == ArrayClass) check(arg, bound)
- else if (arg.typeArgs.nonEmpty) () // avoid spurious warnings with higher-kinded types
+ else if (arg.typeArgs.nonEmpty) () // avoid spurious warnings with higher-kinded types
+ else if (sym == NonLocalReturnControlClass) () // no way to suppress unchecked warnings on try/catch
else arg match {
case TypeRef(_, sym, _) if isLocalBinding(sym) =>
;
diff --git a/src/library/scala/util/control/Breaks.scala b/src/library/scala/util/control/Breaks.scala
index bb84fcb5fe..d7f5a57f50 100644
--- a/src/library/scala/util/control/Breaks.scala
+++ b/src/library/scala/util/control/Breaks.scala
@@ -73,7 +73,7 @@ class Breaks {
*
* @note This might be different than the statically closest enclosing block!
*/
- def break() { throw breakException }
+ def break(): Nothing = { throw breakException }
}
/** An object that can be used for the break control abstraction.
diff --git a/test/files/pos/nonlocal-unchecked.flags b/test/files/pos/nonlocal-unchecked.flags
new file mode 100644
index 0000000000..144ddac9d3
--- /dev/null
+++ b/test/files/pos/nonlocal-unchecked.flags
@@ -0,0 +1 @@
+-unchecked -Xfatal-warnings
diff --git a/test/files/pos/nonlocal-unchecked.scala b/test/files/pos/nonlocal-unchecked.scala
new file mode 100644
index 0000000000..6bd3dc479e
--- /dev/null
+++ b/test/files/pos/nonlocal-unchecked.scala
@@ -0,0 +1,6 @@
+class A {
+ def f: Boolean = {
+ val xs = Nil map (_ => return false)
+ true
+ }
+}