uqbar-project / wollok

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

Definir una referencia dentro de un try/catch en un describe tira stack overflow #1855

Closed fdodino closed 4 years ago

fdodino commented 5 years ago

image

describe "prueba" {
    test "mira como falla" {
        try {
            const a = 2
            assert.fail("no llego")
        } catch e {
        }
    }
}

Hoy pasando los sanity tests me encontré con este problema, bastante complejo, porque el problema real era que la referencia a no estaba definida en el contexto del describe.

Creo el issue para alertar por si le pasa a algún alumn@, actualmente se crean referencias para el nivel 0 de un test, pero no se tienen en cuenta BlockExpression, ni referencias definidas dentro de un try/catch. Ya resolví este tema:

1) haciendo que tire un UnresolvableException primero 2) forzando a definir las referencias anidadas varios niveles.

Puede llegar a faltar incorporar nuevas definiciones.

Lo extraño es que si lo ejecutaba sin describe andaba todo al pelo, porque no existe un describe como WollokObject ficticio sino que es global.