Support => within case, and improve error messages for cond and case
authorMark H Weaver <mhw@netris.org>
Wed, 8 Feb 2012 00:40:29 +0000 (19:40 -0500)
committerMark H Weaver <mhw@netris.org>
Wed, 8 Feb 2012 21:27:48 +0000 (16:27 -0500)
commite7cf0457d7c71acd2c597d1644328960f136e4bc
tree6dd6ad6f659bc1900189a79e8601c9e231da1479
parentb131b233ff9530546ca7afbb4daa682b65015e8b
Support => within case, and improve error messages for cond and case

* module/ice-9/boot-9.scm (cond, case): Reimplement using syntax-case,
  with improved error messages and support for '=>' within 'case' as
  mandated by the R7RS.  Add warnings for duplicate case datums and
  case datums that cannot be meaningfully compared using 'eqv?'.

* module/system/base/message.scm (%warning-types): Add 'bad-case-datum'
  and 'duplicate-case-datum' warning types.

* test-suite/tests/syntax.test (cond, case): Update tests to reflect
  improved error reporting.  Add tests for '=>' within 'case'.

* test-suite/tests/tree-il.test (partial evaluation): Update tests to
  reflect changes in how 'case' is expanded.

* doc/ref/api-control.texi (Conditionals): Document '=>' within 'case'.
doc/ref/api-control.texi
module/ice-9/boot-9.scm
module/system/base/message.scm
test-suite/tests/syntax.test
test-suite/tests/tree-il.test