uqbar-project / wollok

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

Validación: detectar llamadas recursivas donde deberían usar super #1950

Closed fdodino closed 3 years ago

fdodino commented 3 years ago
class Torcaza inherits Ave {

    override method comer(gramos) {
        self.comer(gramos)
    }

}

hice este ejemplo en clase y se rompe mal con un StackOverflow: null. Más allá de arreglar el null, me parece que se podría atajar una llamada directa en un método al mismo método... qué opinan? @tesonep @asanzo @npasserini @nscarcella @lspigariol @PalumboN Para discutir algún domingo...

No entraría la validación si ponemos un if:

class Torcaza inherits Ave {

    override method comer(gramos) {
                if (true) self.comer(gramos)
    }

}
asanzo commented 3 years ago

94760021-cec5e780-0377-11eb-835e-efcd107160f5

fdodino commented 3 years ago

jajaja, ahora me da un poco de miedo meter la validación. Sobre todo para los amantes del while, que podrían hackearla con un método recursivo y esta validación les molestaría... creo que voy a conformarme con arreglar el null del Stack Overflow.

lspigariol commented 3 years ago

Vi mas de un caso donde usan recursividad a falta de while...

El jue., 1 de oct. de 2020 a la(s) 10:41, Fernando Dodino ( notifications@github.com) escribió:

jajaja, ahora me da un poco de miedo meter la validación. Sobre todo para los amantes del while, que podrían hackearlo con un método recursivo... creo que voy a conformarme con arreglar el null del Stack Overflow.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/uqbar-project/wollok/issues/1950#issuecomment-702143536, or unsubscribe https://github.com/notifications/unsubscribe-auth/ACZRXG3FPRFDZNP4M63F4ZLSISBJRANCNFSM4R7YDR7A .

fdodino commented 3 years ago

Cierro el issue, me parece que hay cosas más lindas para laburar.