KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
What is the reason for val s not (?) being automatically final in singleton objects? E.g. object NonFinal { val a = 0 val b = 1 def test(i: Int) = (i: @annotation.switch) match { case `a` => true case `b` => false } } results in: <console>:12: error: could not emit switch for @switch annotated match def test(i: Int) = (i: @annotation.switch) match { ^ Whereas object Final { final val a = 0 final val b = 1 def test(i: Int) = (i: @annotation.switch) match { case `a` => true case `b` => false } } Compiles without warnings, so presumably generates the faster pattern matching table. Having to add final seems pure annoying noise to me. Isn't an object final per se, and thus also its members?
Tags (comma-separated)
Save Edits
Cancel