object Test { val xs = List(1) val f: int = { xs match { case List(x) => x } } } // the following comes from ticket #230 trait Foo { def name : String def unapply(x : String) : Option[Unit] = { if(x == name) Some(()) else None } } object Bar extends Foo { def name = "bar" } object Baz extends Foo { def name = "baz" } object Test_ { def matcher(s : String) = s match { case Bar(x) => println("bar") case Baz(x) => println("baz") // ^ // error: unreachable code } }