From 18596a1368445eac72d11f9c4071d97e71e6adbf Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Sat, 14 Jul 2012 16:38:46 +0200 Subject: [PATCH] THE currently cannot generate type-checking code for multiple-values types. --- src/cmp/cmpspecial.lsp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/cmp/cmpspecial.lsp b/src/cmp/cmpspecial.lsp index 452897e8c..20bf439e1 100644 --- a/src/cmp/cmpspecial.lsp +++ b/src/cmp/cmpspecial.lsp @@ -23,9 +23,14 @@ (cmperr "The declaration ~s was found in a bad place." (cons 'DECLARE args))) (defun c1the (args) - (if (policy-the-is-checked) - (c1checked-value args) - (c1truly-the args))) + (check-args-number 'THE args 2 2) + ;; FIXME: C1CHECKED-VALUE cannot check multiple values. + (let ((type (first args))) + (if (and (policy-the-is-checked) + (not (and (consp type) + (eq (first type) 'values)))) + (c1checked-value args) + (c1truly-the args)))) (defun c1truly-the (args) (check-args-number 'TRULY-THE args 2 2)