Skip to content

Instantly share code, notes, and snippets.

@aoiroaoino
Created November 26, 2012 12:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aoiroaoino/4147981 to your computer and use it in GitHub Desktop.
Save aoiroaoino/4147981 to your computer and use it in GitHub Desktop.
match式にてcase classのチェック漏れを検出 ref: http://qiita.com/items/30d02a5306514df67de0
sealed abstract class Season
case class Spring() extends Season
case class Summer() extends Season
case class Fall() extends Season
case class Winter() extends Season
// FallとWinterを忘れたパターンマッチ
scala> def checkSeason(s: Season) = s match {
| case Spring() => "Spring!"
| case Summer() => "Summer!"
| }
<console>:12: warning: match is not exhaustive!
missing combination Fall
missing combination Winter
def checkSeason(s: Season) = s match {
^
checkSeason: (s: Season)java.lang.String
scala> def checkSeason(s: Season) = (s: @unchecked) match {
| case Spring() => "Spring!"
| case Summer() => "Summer!"
| }
scala> checkSeason(Fall())
scala.MatchError: Fall() (of class Fall)
at .checkSeason(<console>:12)
(以下省略)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment