uqbar-project / wollok

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

El scope de los objetos importados no tiene en cuenta la extensión del archivo #1514

Open fdodino opened 6 years ago

fdodino commented 6 years ago

anim.gif

Si generamos un archivo .wlk y el .wtest tiene el mismo nombre, el sistema de scopes no actualiza la cache de definiciones de objetos importados. En el video se puede ver que cuando desde el test creamos un método nuevo para un wko, al grabar no se actualiza el test y sigue tirando error. Luego, cuando comentamos el import se arregla, porque se dispara la actualización del test (y también del wlk). Y como estamos en monedero.wtest, todo lo que está en monedero.wlk también se puede scopear. Hay que ver si se puede mejorar esto.

npasserini commented 6 years ago

Ooops, tenemos una inconsistencia ahí. Dado que los tests no se pueden importar, podríamos hacer que el package implícito dentro del test sea distinto.

Pero... ¿y si permitimos que no sea necesario el import?

El mar., 25 de sep. de 2018 a la(s) 09:42, Fernando Dodino ( notifications@github.com) escribió:

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/uqbar-project/wollok/issues/1514, or mute the thread https://github.com/notifications/unsubscribe-auth/AEa1OePBlwgz_1Y9mMGy3f0g0b11AETOks5ueiSngaJpZM4W4iFQ .

fdodino commented 6 years ago

+1 a que no sea necesario el import en ese caso, eso solucionaría uno de los dos temas. Lo otro que habría que hacer es buscar todos los archivos que tengan ese nombre, sean wpgm, wtest o wlk, porque el refresh del scope no le está ocurriendo al test cuando grabás el wlk

lspigariol commented 6 years ago

no termino de ver por donde viene el problema, pero escuché lo de "no sea necesario el import" y a riesgo de irme de tema aprovecho a meter un bocado...

si se asumieran por default que se importan todos los archivos de la carpeta src, seria más sencillo. En particular seria bueno evitar que cada wlk necesite importar todos lso demas wlk en que se divide el programa (ademas teniendo en cuenta que el TS necesita que estén importados los otros archivos para inferir bien).

Entiendo que usar imports en un proyecto permite por ejemplo cambiar rapidamente un archivo importado por otro, o tener diferentes versiones a la vez, pero en mi caso no es una estrategia que use frecuentemente. Tal vez se podria hacer algo así usando imports en caso de usar diferentes carpetas o subcarpetas.

El mar., 25 sept. 2018 a las 14:10, Fernando Dodino (< notifications@github.com>) escribió:

+1 a que no sea necesario el import en ese caso, eso solucionaría uno de los dos temas. Lo otro que habría que hacer es buscar todos los archivos que tengan ese nombre, sean wpgm, wtest o wlk, porque el refresh del scope no le está ocurriendo al test cuando grabás el wlk

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/uqbar-project/wollok/issues/1514#issuecomment-424423654, or mute the thread https://github.com/notifications/unsubscribe-auth/ALMbm4JJr9s3S9eiTRPUoiqPCtv8JGaIks5uemN_gaJpZM4W4iFQ .

fdodino commented 5 years ago

@npasserini @lspigariol, para mí sería importante tener un workaround, lo anoto para eso, porque es posible que los alumnos le pongan el mismo nombre al test que al objeto