summaryrefslogtreecommitdiff
path: root/test/files/neg
diff options
context:
space:
mode:
Diffstat (limited to 'test/files/neg')
-rw-r--r--test/files/neg/check-dead.check16
-rw-r--r--test/files/neg/check-dead.scala55
2 files changed, 40 insertions, 31 deletions
diff --git a/test/files/neg/check-dead.check b/test/files/neg/check-dead.check
index be4de3060b..29601c1d4a 100644
--- a/test/files/neg/check-dead.check
+++ b/test/files/neg/check-dead.check
@@ -1,7 +1,13 @@
-check-dead.scala:27: error: dead code following this construct
- throw new Exception
+check-dead.scala:7: error: dead code following this construct
+ def z1 = y1(throw new Exception) // should warn
+ ^
+check-dead.scala:10: error: dead code following this construct
+ def z2 = y2(throw new Exception) // should warn
+ ^
+check-dead.scala:29: error: dead code following this construct
+ throw new Exception // should warn
^
-check-dead.scala:31: error: dead code following this construct
- throw new Exception
+check-dead.scala:33: error: dead code following this construct
+ throw new Exception // should warn
^
-two errors found
+four errors found
diff --git a/test/files/neg/check-dead.scala b/test/files/neg/check-dead.scala
index 851e81d886..2d5bccb21d 100644
--- a/test/files/neg/check-dead.scala
+++ b/test/files/neg/check-dead.scala
@@ -1,34 +1,37 @@
-package dummy
-
-object Error {
- def soSorry(msg: String = "sorry"): Nothing =
- throw new Exception("we have a problem: "+msg)
+object Other {
+ def oops(msg: String = "xxx"): Nothing = throw new Exception(msg) // should not warn
}
class NoDeads {
- def x = synchronized { throw new Exception }
- def y[T](arg: T) = println("foo")
- def z = this.y(throw new Exception)
-
- def dummy1: Int = synchronized {
- val i = 10 + 2
- return i
- }
- def dummy1b: Int = synchronized {
- val i = 10 + 2
- i
- }
-
- def dummy2: String = Error.soSorry("we're dummies")
-}
+ def y1(arg: Any) = println("foo")
+ def z1 = y1(throw new Exception) // should warn
+
+ def y2[T](arg: T) = println("foo")
+ def z2 = y2(throw new Exception) // should warn
-class Deads {
- def x1 = synchronized {
- throw new Exception
+ def y3[T](arg: => T) = println("foo")
+ def z3 = y3(throw new Exception) // should not warn: by name arg
+
+ def nowarn1 = synchronized { throw new Exception } // should not warn: synchronized should be by name
+
+ def nowarn2: Int = synchronized { // should not warn
+ val i = 10 + 2
+ return i
+ }
+ def nowarn3: Int = synchronized { // should not warn
+ val i = 10 + 2
+ i
+ }
+
+ def nowarn4: String = Other.oops("don't warn about me") // should not warn
+
+ def yeswarn1 = synchronized {
+ throw new Exception // should warn
5 * 5
}
- def x2: Int = synchronized {
- throw new Exception
+ def yeswarn2: Int = synchronized {
+ throw new Exception // should warn
return 5
}
-} \ No newline at end of file
+}
+