0.7.6.3:
[sbcl.git] / src / compiler / parse-lambda-list.lisp
index 9628902..2c30e85 100644 (file)
@@ -25,7 +25,7 @@
 ;;; 10. the &MORE context var;
 ;;; 11. the &MORE count var.
 ;;;
-;;; The top-level lambda list syntax is checked for validity, but the
+;;; The top level lambda list syntax is checked for validity, but the
 ;;; arg specifiers are just passed through untouched. If something is
 ;;; wrong, we use COMPILER-ERROR, aborting compilation to the last
 ;;; recovery point.
@@ -68,7 +68,7 @@
               (unless (member state '(:required :optional))
                 (compiler-error "misplaced &REST in lambda list: ~S" list))
               (setq state :rest))
-             (sb!c:&more
+             (&more
               (unless (member state '(:required :optional))
                 (compiler-error "misplaced &MORE in lambda list: ~S" list))
               (setq morep t
               (compiler-error "found garbage in lambda list when expecting ~
                                a keyword: ~S"
                               arg)))))
-
+      (when (eq state :rest)
+       (compiler-error "&REST without rest variable"))
+      
       (values (required) (optional) restp rest keyp (keys) allowp (aux)
              morep more-context more-count))))