uqbar-project / wollok

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

Polymorphic method type #1889

Closed PalumboN closed 4 years ago

PalumboN commented 4 years ago

Fix https://github.com/uqbar-project/wollok/issues/1770 Fix https://github.com/uqbar-project/wollok/issues/1745 Fix https://github.com/uqbar-project/wollok/issues/1735 Fix https://github.com/uqbar-project/wollok/issues/1526 Fix https://github.com/uqbar-project/wollok/issues/1507 Fix https://github.com/uqbar-project/wollok/issues/1478

Este PR soluciona problemas con la inferencia, en donde el uso de un método pesaba más que su definición y producía que se infiera un tipo más acotado para los parámetros. Ahora los tipos de los métodos se infieren a partir de su uso, buscando el tipo más amplio. El buscar el tipo más amplio, me llevó a inferencias del tipo (Number|String) que se esperaban que dieran error. Así que metí el concepto de tipos compatibles para ver en qué casos hacer union y en qué casos fallar. Pueden ver los tests para más detalles

PalumboN commented 4 years ago

@fdodino me está fallando el build por algo de Xpect, sabés qué onda?

[ERROR] Failed to resolve target definition /home/travis/build/uqbar-project/wollok/org.uqbar.project.wollok.targetplatform/org.uqbar.project.wollok.targetplatform.target: Failed to load p2 metadata repository from location https://ci.eclipse.org/xpect/job/Xpect/job/master/lastSuccessfulBuild/artifact/org.eclipse.xpect.releng/p2-repository/target/repository/: No repository found at https://ci.eclipse.org/xpect/job/Xpect/job/master/lastSuccessfulBuild/artifact/org.eclipse.xpect.releng/p2-repository/target/repository. -> [Help 1]
coveralls commented 4 years ago

Coverage Status

Coverage increased (+0.2%) to 86.151% when pulling 3170e08224f348981adc0fe49e731ec39a6ea5d0 on polymorphic-method-type into 8dc8bc4a4161bb1cf3f68f8c89cdfdc9b39fa8fc on dev.