fix bug 422778 Missing lineinfo on indexed function names
diff --git a/metalua/compiler/parser/stat.lua b/metalua/compiler/parser/stat.lua index 3c671db..846f56d 100644 --- a/metalua/compiler/parser/stat.lua +++ b/metalua/compiler/parser/stat.lua
@@ -33,6 +33,7 @@ -- ------------------------------------------------------------------------------- +local lexer = require 'metalua.grammar.lexer' local mlp = require 'metalua.compiler.parser.common' local mlp_misc = require 'metalua.compiler.parser.misc' local mlp_meta = require 'metalua.compiler.parser.meta' @@ -124,9 +125,14 @@ -- Function def parser helper: id ( . id ) * -------------------------------------------------------------------------------- local function fn_builder (list) - local r = list[1] - for i = 2, #list do r = { tag="Index", r, mlp.id2string(list[i]) } end - return r + local acc = list[1] + local first = acc.lineinfo.first + for i = 2, #list do + local index = mlp.id2string(list[i]) + local li = lexer.new_lineinfo(first, index.lineinfo.last) + acc = { tag="Index", acc, index, lineinfo=li } + end + return acc end local func_name = gg.list{ mlp_misc.id, separators = ".", builder = fn_builder }