uqbar-project / wollok

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

No se marca como error el uso de una variable de un bloque en el scope de afuera #1971

Closed mmatos closed 3 years ago

mmatos commented 3 years ago

Esto no se está marcando como un error en el IDE

image

Sí falla al intentar ejecutarlo en el REPL y los tests correctamente

>>> carrito.productoMasCaro()
ERROR: Couldn't resolve reference to productoMasCaro
fdodino commented 3 years ago

Agh, @mmatos, me llevó casi 3 horas descular dónde estaba el problema, y lo más gracioso @npasserini @PalumboN es que cuando metí el fix saltaron dos errores, que son justamente tests que están mal:

    method descargarCamionEn(unLugar) { destino.remove(destinos.detect{destino => destino.getLugar() == unLugar}) }

acá hay un typo, debería ser destinos en lugar de destino.remove...

Y

    method comer(alimento) {
        alimento.sum { x =>
            // XPECT errors --> "Cannot assign a variable to itself. It does not have any effect" at "energia"
            energia = energia 
        }

        // XPECT errors --> "Cannot assign a variable to itself. It does not have any effect" at "y"
        const y = y 
        var z = 24
        z = y
        const w = y

        alimento.hacerAlgo(x,y,z,w)

acá x está en el Closure. Increíble pero hace 4 años que el test está así y nunca me saltó.

Como dice un amigo: "Good catch, Maiu!"

PalumboN commented 3 years ago

Jajajaja yo conocía el error, creo que saltó en una demo en UTN (memoria dodinezca), pero me hice el dolobu estos 4 años :P

GROSES TODES :)