KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Consider the following broken function: def sum (list : Seq[Int]) : Int = list match { case Nil => 0 case head :: tail => head + sum(tail) } Here, the function was supposed to work with a List[Int] , but was refactored to accept Seq[Int] instead, thus becoming broken without the compiler noticing. This gaping hole in Scala's incomplete pattern match detection makes it next to useless. I want to have a way of systematically detecting such problems. Specifically, I'd like the compiler to emit an error/warning on every instanceof -guided pattern match, i.e. I only want to allow pattern matches on sealed hierarchies and on custom matchers. Are there existing compiler options/plugins for doing conservative (as opposed to arbitrary) checks of pattern matching safety?
Tags (comma-separated)
Save Edits
Cancel