diff options
Diffstat (limited to 'script')
-rw-r--r-- | script/vm/compiler.lua | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/script/vm/compiler.lua b/script/vm/compiler.lua index 8a1fa96a..7e12c32a 100644 --- a/script/vm/compiler.lua +++ b/script/vm/compiler.lua @@ -1090,6 +1090,37 @@ local function compileLocal(source) end end end + if not hasDocArg + and func.parent.type == 'local' then + local refs = vm.getRefs(func, function (_) + return false + end) + local findCall + if refs then + for i, ref in ipairs(refs) do + if ref.parent.type == 'call' then + findCall = ref.parent + break + end + end + end + if findCall and findCall.args then + local index + for i, arg in ipairs(source.parent) do + if arg == source then + index = i + break + end + end + if index then + local callerArg = findCall.args[index] + if callerArg then + hasDocArg = true + vm.setNode(source, vm.compileNode(callerArg)) + end + end + end + end if not hasDocArg then vm.setNode(source, vm.declareGlobal('type', 'any')) end |