aboutsummaryrefslogtreecommitdiff
path: root/tests/untried/neg/check-dead.scala
diff options
context:
space:
mode:
Diffstat (limited to 'tests/untried/neg/check-dead.scala')
-rw-r--r--tests/untried/neg/check-dead.scala37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/untried/neg/check-dead.scala b/tests/untried/neg/check-dead.scala
new file mode 100644
index 000000000..2d5bccb21
--- /dev/null
+++ b/tests/untried/neg/check-dead.scala
@@ -0,0 +1,37 @@
+object Other {
+ def oops(msg: String = "xxx"): Nothing = throw new Exception(msg) // should not warn
+}
+
+class NoDeads {
+ 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
+
+ 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 yeswarn2: Int = synchronized {
+ throw new Exception // should warn
+ return 5
+ }
+}
+