More compile-time error checking in NUMBER-DISPATCH
authorLutz Euler <lutz.euler@freenet.de>
Fri, 1 Jul 2011 18:54:38 +0000 (20:54 +0200)
committerChristophe Rhodes <csr21@cantab.net>
Sun, 20 Nov 2011 15:50:27 +0000 (15:50 +0000)
commitb54daad21c47a3a9d47a073f3f6255ed7a4f3d68
tree9c60c0e9e7c5a0df7c8bcc0cdad229a10f7aaf91
parentb90e13dea92ee66f06f66baf17c3e3e23c89575f
More compile-time error checking in NUMBER-DISPATCH

Check for some problematic cases where non-disjoint types are used
in different clauses for the same variable and throw an error at
macroexpand-time if such a case is detected. Otherwise these could
lead to the generated type-dispatching form not covering all intended
combinations of types.

The intention is to make writing and modifying complex NUMBER-DISPATCH
forms safer.

All existing uses of NUMBER-DISPATCH, insofar as they contain
non-disjoint types, are unproblematic and graded as such by the
check; thus they continue to work unchanged.

Signed-off-by: Christophe Rhodes <csr21@cantab.net>
src/code/numbers.lisp