|
> 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