summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard Maw <richard.maw@codethink.co.uk>2015-11-26 16:44:08 +0000
committerRichard Maw <richard.maw@codethink.co.uk>2015-11-27 17:46:53 +0000
commit8474c27d9d3db37616bfd1c95158d03f9efcd2af (patch)
tree1b7f735dce7c1a7d21ffcb333d5ebc55edd49c94
parent0b254cbed3e683974915792ec76e47523d7a473b (diff)
downloadlace-8474c27d9d3db37616bfd1c95158d03f9efcd2af.tar.gz
lace.builtin: Augment default rule with source and line number
-rw-r--r--lib/lace/builtin.lua9
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/lace/builtin.lua b/lib/lace/builtin.lua
index 9d53455..8ff2d75 100644
--- a/lib/lace/builtin.lua
+++ b/lib/lace/builtin.lua
@@ -186,9 +186,14 @@ function builtin.default(compcontext, def, result, reason, unwanted)
if compcontext._lace.default then
return err.error("Cannot change the default", {1, 2})
end
-
+
local uncond, last = unconditional_result, last_result
- compcontext._lace.default = _return(compcontext, result, reason)
+ local default_rule = _return(compcontext, result, reason)
+ -- Normally lace.compiler.internal_compile augments the rules with sources,
+ -- but since this rule is not returned, we have to augment it ourselves.
+ default_rule.source = compcontext._lace.source
+ default_rule.linenr = compcontext._lace.linenr
+ compcontext._lace.default = default_rule
unconditional_result, last_result = uncond, last
return {