Print the faulty object upon invalid-keyword errors.
authorLudovic Courtès <ludo@gnu.org>
Mon, 3 Jun 2013 22:29:59 +0000 (00:29 +0200)
committerLudovic Courtès <ludo@gnu.org>
Tue, 4 Jun 2013 10:08:02 +0000 (12:08 +0200)
commit4af0d97ee65f298be33d5959cd36a5bea8797be9
tree863824da077e6800145db2b8f3cc10c3c551ce9a
parent6fe2803b45fbbd676625c9d665151e5a8a57aca5
Print the faulty object upon invalid-keyword errors.

* libguile/vm.c (vm_error_kwargs_invalid_keyword,
  vm_error_kwargs_unrecognized_keyword): Add parameter.  Pass it
  enclosed in a list as the last argument to `scm_error_scm'.
* libguile/vm-i-system.c (bind_kwargs): Adjust accordingly.
* libguile/eval.c (error_invalid_keyword, error_unrecognized_keyword):
  Add parameter.
  (prepare_boot_closure_env_for_apply): Adjust accordingly.
* module/ice-9/eval.scm (primitive-eval): Likewise.
* libguile/error.c (scm_error_scm): Mention `keyword-argument-error' in
  docstring.
* module/ice-9/boot-9.scm (keyword-error-printer): New procedure; use it.
* test-suite/tests/optargs.test (c&e, with-test-prefix/c&e): Remove.
  ("define*")["unrecognized keyword"]: Test the value passed along the
  `keyword-argument-error' exception.
  ["invalid keyword"]: New test.
* doc/ref/api-control.texi (Error Reporting): Update `scm-error'
  description.
doc/ref/api-control.texi
libguile/error.c
libguile/eval.c
libguile/vm-i-system.c
libguile/vm.c
module/ice-9/boot-9.scm
module/ice-9/eval.scm
test-suite/tests/optargs.test