Si uso un sin sellar trait
o abstract class
en Scala y luego uso la coincidencia de patrones, me pregunto, ¿el compilador no sabe en el momento de la compilación para este patrón en particular qué posibles implementaciones de este rasgo / clase están disponibles? Entonces, si lo hace, ¿no podría dar advertencias de coincidencia de patrones a pesar de que trait
/ abstract class
no está sellado porque sabe qué tipos podrían usarse, al verificar todas las dependencias / importaciones posibles?
Por ejemplo, si tengo una Option[A]
coincidencia de patrones y solo para Some[A]
pero no para None
, el compilador se quejará porque Option
está sellado.
Si el compilador no puede saber / resolver eso, ¿por qué no puede hacerlo? Y si el compilador (en teoría) puede hacer eso, ¿cuáles son las razones por las que no se usa en Scala? ¿Hay otros idiomas que soporten ese tipo de comportamiento?
Foo
con subclases A
, B
y C
, y todas sus coincidencias de patrones coinciden solo con esas tres. Nada me impide agregar una nueva subclase D
que explote tus coincidencias de patrones.
java.lang.ClassLoader
.