scala.unchecked.scala Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of scala-library Show documentation
Show all versions of scala-library Show documentation
Standard library for the Scala Programming Language
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2002-2013, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala
/** An annotation to designate that the annotated entity
* should not be considered for additional compiler checks.
* Specific applications include annotating the subject of
* a match expression to suppress exhaustiveness warnings, and
* annotating a type argument in a match case to suppress
* unchecked warnings.
*
* Such suppression should be used with caution, without which
* one may encounter [[scala.MatchError]] or [[java.lang.ClassCastException]]
* at runtime. In most cases one can and should address the
* warning instead of suppressing it.
*
* {{{
* object Test extends App {
* // This would normally warn "match is not exhaustive"
* // because `None` is not covered.
* def f(x: Option[String]) = (x: @unchecked) match { case Some(y) => y }
* // This would normally warn "type pattern is unchecked"
* // but here will blindly cast the head element to String.
* def g(xs: Any) = xs match { case x: List[String @unchecked] => x.head }
* }
* }}}
*
* @since 2.4
*/
class unchecked extends scala.annotation.Annotation {}