5. Ceylon
• Creado a partir de un sistema de tipos
• Es una de sus características principales
• Sintaxis, gramática, operadores obedecen al ST
• Arreglar problemas comunes y/o graves en el
sistema de tipos de Java
50. Demo.java:7: error: no suitable method found for add(T)
lista.add(arg);
^
method List.add(int,CAP#1) is not applicable
(actual and formal argument lists differ in length)
method List.add(CAP#1) is not applicable
(actual argument T cannot be converted to CAP#1 by method
invocation conversion)
method Collection.add(CAP#1) is not applicable
(actual argument T cannot be converted to CAP#1 by method
invocation conversion)
where T is a type-variable:
T extends Object declared in method <T>boom(List<T>,T)
where CAP#1 is a fresh type-variable:
CAP#1 extends Object from capture of ?
51. Resumen
• Tipos unión
• Tipos intersección
• Tipos enumerados
• Tipado por flujo / acotación de tipos
• Inferencia local de tipos
• Tipos denotables
52. Otras cosas
• Reified generics
• Varianza en el sitio de declaración
• Covarianza y contravarianza
• Tuplas