-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Mejoras al manejo de void (y algo de nulls), especialmente para bloques #218
Conversation
Listo el pollo, final final versión posta postín! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
GROSSOOOO! 👍 💯 🚦
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Todo joya! 💎
Me quedé pensando si no podemos evitar tener definido el objeto void en lang y que lo maneje internamente la VM (como se hace con null
).
const valueFound = numbers.findOrElse({ elem => elem > 100 }, { encontro = false }) | ||
numbers.findOrElse({ elem => elem > 100 }, { encontro = false }) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👏
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sí, dale, se puede hacer en un próximo PR
Tomando el trabajo de @nmigueles para uqbar-project/wollok-ts#208 , traje de wollok-ts-cli el método que sanitiza un stack trace para de paso resolver
Una de las cosas que hice fue revisar de paso todos los usos de closures en Set, List, Collection, Range y Dictionary. En general revisé
de las implementaciones en Wollok, más otros métodos implementados en TS.
En Range acomodé la implementación de
asList
que me asegura que todos los métodos de esta clase deleguen en List (así comparten las mismas validaciones).Agregué también sanity tests para especificar el contrato de lo que nosotros creemos que debería tirar error para implementaciones futuras, incluyendo algunas validaciones que incorporé en TS (como parámetros "void" o "null" que faltaban chequear).
Como en el recorrido del PR surgió la idea de no permitir el uso del wko
void
, agregué un mensaje para el validador y 3 archivos que chequean que no uses void en un programa, archivo de test o wlk.