summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorruki <[email protected]>2018-04-11 22:36:39 +0800
committerruki <[email protected]>2018-04-11 09:39:58 +0800
commita193fb96aa44c2ba32b18557fabd7d7694ee41eb (patch)
treecf1b53816b123762d64d7264c56ad2c827f97466
parent4b9de4cb6a555c80be771fad26fe4c00ac3f4e2e (diff)
improve interpreter tips
-rw-r--r--xmake/core/base/interpreter.lua4
-rw-r--r--xmake/core/base/option.lua8
-rw-r--r--xmake/core/project/project.lua4
3 files changed, 8 insertions, 8 deletions
diff --git a/xmake/core/base/interpreter.lua b/xmake/core/base/interpreter.lua
index ea5dfcd96..60e6f9cc7 100644
--- a/xmake/core/base/interpreter.lua
+++ b/xmake/core/base/interpreter.lua
@@ -497,7 +497,7 @@ function interpreter:_make(scope_kind, remove_repeat, enable_filter)
-- empty scope?
if not scopes or not scopes._ROOT then
- return nil, string.format("the scope %s() is empty!", scope_kind)
+ os.raise("the scope %s() is empty!", scope_kind)
end
-- make results
@@ -682,7 +682,7 @@ function interpreter:load(file, scope_kind, remove_repeat, enable_filter)
-- bind public scope
setfenv(script, self._PUBLIC)
- -- done interpreter
+ -- do interpreter
local ok, errors = xpcall(script, interpreter._traceback)
if not ok then
return nil, errors
diff --git a/xmake/core/base/option.lua b/xmake/core/base/option.lua
index a6a87ad7c..520a5f516 100644
--- a/xmake/core/base/option.lua
+++ b/xmake/core/base/option.lua
@@ -41,13 +41,13 @@ function option._translate(menu)
local submenus_all = {}
for k, submenu in pairs(menu) do
if type(submenu) == "function" then
- local _submenus, errors = submenu()
- if _submenus then
- for k, m in pairs(_submenus) do
+ local ok, _submenus_or_errors = pcall(submenu)
+ if ok and _submenus_or_errors then
+ for k, m in pairs(_submenus_or_errors) do
submenus_all[k] = m
end
else
- return false, errors
+ return false, (_submenus_or_errors or "translate option menu failed!")
end
else
submenus_all[k] = submenu
diff --git a/xmake/core/project/project.lua b/xmake/core/project/project.lua
index e5785a645..ff7108411 100644
--- a/xmake/core/project/project.lua
+++ b/xmake/core/project/project.lua
@@ -362,7 +362,7 @@ function project._load_scope(scope_kind, remove_repeat, enable_filter)
-- load targets
local results, errors = interp:load(project.file(), scope_kind, remove_repeat, enable_filter)
if not results then
- return nil, errors
+ return nil, (errors or "load project file failed!")
end
-- leave the project directory
@@ -664,7 +664,7 @@ function project.tasks()
-- load the tasks from the the project file
local results, errors = project._load_scope("task", true, true)
if not results then
- os.raise(errors)
+ os.raise(errors or "load project tasks failed!")
end
-- bind tasks for menu with an sandbox instance