diff options
author | Richard Maw <richard.maw@codethink.co.uk> | 2015-11-26 16:44:08 +0000 |
---|---|---|
committer | Richard Maw <richard.maw@codethink.co.uk> | 2015-11-27 17:46:53 +0000 |
commit | 8474c27d9d3db37616bfd1c95158d03f9efcd2af (patch) | |
tree | 1b7f735dce7c1a7d21ffcb333d5ebc55edd49c94 | |
parent | 0b254cbed3e683974915792ec76e47523d7a473b (diff) | |
download | lace-8474c27d9d3db37616bfd1c95158d03f9efcd2af.tar.gz |
lace.builtin: Augment default rule with source and line number
-rw-r--r-- | lib/lace/builtin.lua | 9 |
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 { |