records: Improve reporting of "invalid field specifier" errors.
authorLudovic Courtès <ludo@gnu.org>
Thu, 16 Jan 2020 14:00:18 +0000 (15:00 +0100)
committerLudovic Courtès <ludo@gnu.org>
Thu, 16 Jan 2020 17:30:57 +0000 (18:30 +0100)
commit47212fc763788660ff9051ccee1f6fa8a0db7bdd
tree909f449ea0d8100fc019a4ef2c78a16416bd5054
parent84c5da08dda4fa8fd0e0f1e6a8a115190005f84a
records: Improve reporting of "invalid field specifier" errors.

Previously users would just see:

  error: invalid field specifier

without source location or hints.

* guix/records.scm (expand): Add optional 'parent-form' parameter and
pass it to 'syntax-violation' when it is true.
(make-syntactic-constructor): Pass S as a third argument to
'report-invalid-field-specifier'.
* guix/ui.scm (report-load-error): For 'syntax-error', show SUBFORM or
FORM in the message.
* tests/records.scm ("define-record-type* & wrong field specifier"): Add
a 'subform' parameter and adjust test accordingly.
("define-record-type* & wrong field specifier, identifier"): New test.
* tests/guix-system.sh: Add test.
guix/records.scm
guix/ui.scm
tests/guix-system.sh
tests/records.scm