uqbar-project / wollok

Wollok Programming Language
GNU General Public License v3.0
60 stars 16 forks source link

Ayuda con lo que escupe el Type System: superclase/subclase #1981

Open asanzo opened 3 years ago

asanzo commented 3 years ago

En este archivo: Suenios.txt

Tira este error y no lo entiendo, y no puedo reproducirlo en un ejemplo minimal: Selección_999(644)

Y es raro porque todas esas son subclases de Suenio...

Jelp!

PalumboN commented 3 years ago

Mmmm seguramente algo tiene que ver con este issue donde el tipo de los atributos se trula: https://github.com/uqbar-project/wollok/issues/1891. Por lo que entiendo ahí está infiriendo que el tipo de sueniosCumplidos es una lista de ese tipo unión (ahí se ve el problema del issue, porque falta SuenioMultiple).

Después al inferir el tipo del bloque sí infiere Suenio, por el uso, pero el error ahí no tiene sentido ya que el tipo unión sería subtipo, no debería haber problema :)

PalumboN commented 3 years ago

UPDATE: Acabo de probar este programa con la versión que está en dev y ya no tira ese error. Tira varios errores relacionados con booleanos por culpa de la línea 14:

if(suenio.cumpleRequisito(self) and tipoPersona.requisitoTipo(self)){

En donde tipoPersona.requisitoTipo(self) devuelve un suenio, no un booleano. Así que el warning que tira es correcto.

Al sacar esa condición infiere todo joya y no hay errores de tipos.