Наткнулся в lua вот на такую непонятную хрень:local function foo(...)
    local str = 'text:'
    local txt = {...}
    for s=1, #txt do
        str = str .. ' ' .. tostring(txt[s])
    end
    print(str)
end
local function bar(a, b, c, d, e, f, g, h, i, j, k)
    foo(a, b, c, d, e, f, g, h, i, j, k)
end
local tt = nil
foo('foo test', 1, foo, 2, nil, 3, tt, 4, 'fin')
bar('bar test', 1, foo, 2, nil, 3, tt, 4, 'fin')
 выводит text: foo test 1 function: 0xb370c0 2 nil 3 nil 4 fin
text: bar test 1 function: 0xb370c0 2
 T.e. если у нас nil передаётся в многоточие напрямую или из переменной, то оно нормально проходит. А вот если он берется из аргументов функции, то на этом всё обрывается. 
Это что — баг в луа? Или я что-то не понимаю? Можно ли это как-то обойти?