lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


On Thu, Jan 31, 2019 at 12:28 PM Rodrigo Azevedo <rodrigoams@gmail.com> wrote:
>
> Anyone could tell me why the code below returns 'false', when I
> expected a 'true' instead. Tested with lua5.2, lua5.3 and
> lua5.4-work2.
>
> -----
> local f1 = string.dump(function(x) x=x+1 return x end,true)
> local f2 = string.dump(function(x) x=x+1 return x end,true)
> print(f1 == f2)
> -----
>
> Thanks!
> --
> Rodrigo Azevedo Moreira da Silva

Because f2 includes f1 in its upvalues, so they have different contexts.

/s/ Adam