From e245b681291cb1234de30faf48a036a49a1000a2 Mon Sep 17 00:00:00 2001 From: Paul Phillips Date: Sat, 28 Jul 2012 09:27:06 -0700 Subject: 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. --- test/files/neg/unchecked-suppress.flags | 1 + 1 file changed, 1 insertion(+) create mode 100644 test/files/neg/unchecked-suppress.flags (limited to 'test/files/neg/unchecked-suppress.flags') diff --git a/test/files/neg/unchecked-suppress.flags b/test/files/neg/unchecked-suppress.flags new file mode 100644 index 0000000000..e8fb65d50c --- /dev/null +++ b/test/files/neg/unchecked-suppress.flags @@ -0,0 +1 @@ +-Xfatal-warnings \ No newline at end of file -- cgit v1.2.3