Raymond Toy pushed to branch master at cmucl / cmucl

Commits:

2 changed files:

Changes:

  • src/pcl/low.lisp
    ... ... @@ -357,15 +357,20 @@ the compiler as completely as possible. Currently this means that
    357 357
         (when morep
    
    358 358
           (simple-program-error "~@<~s not allowed here~@:>" 'c:&more))
    
    359 359
         (collect ((vars))
    
    360
    -      (labels ((check-var (var)
    
    361
    -		 (cond ((not (symbolp var))
    
    362
    -			(simple-program-error
    
    363
    -			 "~@<Invalid lambda variable: ~s~@:>" var))
    
    364
    -		       ((memq var (vars))
    
    365
    -			(simple-program-error
    
    366
    -			 "~@<Repeated lambda variable: ~s~@:>" var))
    
    367
    -		       (t
    
    368
    -			(vars var))))
    
    360
    +      (labels ((check-lambda-variable (var)
    
    361
    +		 (unless (symbolp var)
    
    362
    +		   (simple-program-error
    
    363
    +		    "~@<Invalid lambda variable: ~s~@:>" var)))
    
    364
    +	       (check-var (var)
    
    365
    +		 (check-lambda-variable var)
    
    366
    +		 (if (memq var (vars))
    
    367
    +		     (simple-program-error
    
    368
    +		      "~@<Repeated lambda variable: ~s~@:>" var)
    
    369
    +		     (vars var)))
    
    370
    +	       (check-aux (var)
    
    371
    +		 (if (consp var)
    
    372
    +		     (check-lambda-variable (car var))
    
    373
    +		     (check-lambda-variable var)))
    
    369 374
     	       (check-required (var)
    
    370 375
     		 (if (and (consp var) specialized-p)
    
    371 376
     		     (check-var (car var))
    
    ... ... @@ -385,7 +390,7 @@ the compiler as completely as possible. Currently this means that
    385 390
     	(mapc #'check-optional optional)
    
    386 391
     	(mapc #'check-optional keys)
    
    387 392
     	(when restp (check-var rest))
    
    388
    -	(mapc #'check-optional aux)
    
    393
    +	(mapc #'check-aux aux)
    
    389 394
     	(values required optional restp rest keyp keys
    
    390 395
     		allow-other-keys-p aux)))))
    
    391 396
     
    

  • tests/pcl/defmethod.lisp
    ... ... @@ -74,7 +74,10 @@
    74 74
     (define-defmethod-test-1 defmethod.20 dm2 nil (x))
    
    75 75
     (define-defmethod-test-1 defmethod.21 dm2 nil (x &optional y z))
    
    76 76
     (define-defmethod-test-1 defmethod.22 dm2 nil (x &key y))
    
    77
    -
    
    77
    +(define-defmethod-test-1 defmethod.23 dm2 nil (x y &aux (x x) (y y)))
    
    78
    +(define-defmethod-test-1 defmethod.23 dm2 nil (x y &aux z))
    
    79
    +(define-defmethod-test-1 defmethod.23 dm2 nil (x y &aux z z))
    
    80
    +(define-defmethod-test-1 defmethod.23 dm2 nil (x y &aux z (z z)))
    
    78 81
     ;;;
    
    79 82
     ;;; A forward-referenced class used as specializer signaled an
    
    80 83
     ;;; error at some point.