Se eu usar um un selado traitou abstract classno Scala e depois usar a correspondência de padrões, será que o compilador não sabe em tempo de compilação para essa correspondência de padrão específica que implementações possíveis dessa característica / classe estão disponíveis? Portanto, se isso acontecer, não poderia dar avisos de correspondência de padrão, mesmo que o trait/ abstract classnão esteja selado porque ele sabe quais tipos podem ser usados, verificando todas as dependências / importações possíveis?
Por exemplo, se eu tenho uma Option[A]correspondência de padrões e faço apenas para Some[A]mas não para None, o compilador irá reclamar, porque Optionestá selado.
Se o compilador não pode saber / resolver isso, por que não pode? E se o compilador (teoricamente) puder fazer isso, quais são as razões para isso não ser usado no Scala? Existem outros idiomas que suportam esse tipo de comportamento?
Foocom subclasses A, Be C, e todos os seus jogos padrão de correspondência apenas aqueles três. Nada me impede de adicionar uma nova subclasse Dque exploda suas correspondências de padrões.
java.lang.ClassLoader.