lua-users home
lua-l archive

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



> On 27 Nov 2018, at 19:53, Domingo Alvarez Duarte <mingodad@gmail.com> wrote:
> 
> Hello !
> 
> I just found when reading http://www.cse.chalmers.se/edu/year/2012/course/DAT150/lectures/plt-book.pdf on page 80 see bellow:
> 
> ===
> 
> To be really picky, the type checker of function definitions should also
> check that all variables in the parameter list are distinct. We shall see in the
> next section that variables introduced in declarations are checked to be new.
> Then they must also be new with respect to the function parameters.
> 
> ===
> 
> I decided to check lua and found that lua/luajit accept this without complain:
> 
> ===
> 
> function aa(a,a) return a end
> 
> print(aa(1,2))  --> 2
> 
> ===
> 
> Is this the expected behavior or a bug ?
> 
> Cheers !
> 

Expected imo, you create 2 locals called a, the second one shadowing the first (assignments go left to right), so when you return, you return the second one.

Thijs