Merge pull request #13482 from dm1try/propagate_lua_file_loading_errors

runtime: propagate lua parsing errors while using "require"
This commit is contained in:
Björn Linse
2020-12-10 12:15:40 +01:00
committed by GitHub
4 changed files with 21 additions and 3 deletions

View File

@@ -659,7 +659,7 @@ endif()
if(LUACHECK_PRG)
add_custom_target(lualint
COMMAND ${LUACHECK_PRG} -q runtime/ src/ test/
COMMAND ${LUACHECK_PRG} -q runtime/ src/ test/ --exclude-files test/functional/fixtures/lua/syntax_error.lua
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
else()
add_custom_target(lualint false

View File

@@ -115,7 +115,8 @@ function vim._load_package(name)
for _,path in ipairs(paths) do
local found = vim.api.nvim_get_runtime_file(path, false)
if #found > 0 then
return loadfile(found[1])
local f, err = loadfile(found[1])
return f or error(err)
end
end
@@ -123,7 +124,8 @@ function vim._load_package(name)
local path = "lua/"..trail:gsub('?',basename)
local found = vim.api.nvim_get_runtime_file(path, false)
if #found > 0 then
return package.loadlib(found[1])
local f, err = package.loadlib(found[1])
return f or error(err)
end
end
return nil

View File

@@ -0,0 +1 @@
- <= the syntax error

View File

@@ -1453,3 +1453,18 @@ describe('lua stdlib', function()
end)
end)
end)
describe('lua: require("mod") from packages', function()
before_each(function()
command('set rtp+=test/functional/fixtures')
end)
it('propagates syntax error', function()
local syntax_error_msg = exec_lua [[
local _, err = pcall(require, "syntax_error")
return err
]]
matches("unexpected symbol", syntax_error_msg)
end)
end)