summaryrefslogtreecommitdiff
path: root/test/files/neg/t3692-new.check
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2012-07-28 09:27:06 -0700
committerPaul Phillips <paulp@improving.org>2012-07-28 12:02:43 -0700
commite245b681291cb1234de30faf48a036a49a1000a2 (patch)
tree552124fbe438ab6bfb97456ffb09fc3db9b6e7cb /test/files/neg/t3692-new.check
parent5988121127ec17e4cc76dd49bc7847fc56a08336 (diff)
downloadscala-e245b681291cb1234de30faf48a036a49a1000a2.tar.gz
scala-e245b681291cb1234de30faf48a036a49a1000a2.tar.bz2
scala-e245b681291cb1234de30faf48a036a49a1000a2.zip
Promote unchecked warnings into being emitted by default.
To make that viable, suppression of unchecked warnings is now available on a per-type-argument basis. The @unchecked annotation has hereby been generalized beyond exhaustiveness to mean context-dependent "disable further compiler checking on this entity." Example of new usage: def f(x: Any) = x match { case xs: List[String @unchecked] => xs.head // no warning case xs: List[Int] => xs.head // unchecked warning } It turns out -unchecked has been put to other noisy uses such as the pattern matcher complaining about its budget like a careworn spouse. This actually simplified the path forward: I left -unchecked in place for that and general compatibility, so those warnings can be enabled as before with -unchecked. The erasure warnings I turned into regular warnings, subject to suppression by @unchecked. Review by @odersky.
Diffstat (limited to 'test/files/neg/t3692-new.check')
-rw-r--r--test/files/neg/t3692-new.check18
1 files changed, 14 insertions, 4 deletions
diff --git a/test/files/neg/t3692-new.check b/test/files/neg/t3692-new.check
index 349e4fe48a..5aa991c105 100644
--- a/test/files/neg/t3692-new.check
+++ b/test/files/neg/t3692-new.check
@@ -1,4 +1,14 @@
-t3692-new.scala:16: error: unreachable code
- case m2: Map[T, Int] => new java.util.HashMap[T, Integer]
- ^
-one error found
+t3692-new.scala:14: warning: non-variable type argument Int in type pattern Map[Int,Int] is unchecked since it is eliminated by erasure
+ case m0: Map[Int, Int] => new java.util.HashMap[Integer, Integer]
+ ^
+t3692-new.scala:15: warning: non-variable type argument Int in type pattern Map[Int,V] is unchecked since it is eliminated by erasure
+ case m1: Map[Int, V] => new java.util.HashMap[Integer, V]
+ ^
+t3692-new.scala:16: warning: non-variable type argument Int in type pattern Map[T,Int] is unchecked since it is eliminated by erasure
+ case m2: Map[T, Int] => new java.util.HashMap[T, Integer]
+ ^
+t3692-new.scala:16: error: unreachable code
+ case m2: Map[T, Int] => new java.util.HashMap[T, Integer]
+ ^
+three warnings found
+one error found