X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fmacros.lisp;h=838d6999cdf757c3c8ddda1d4d7df2a165904d9e;hb=8eee0d3a30bf39d9f201acff28c92059fe6c3e4e;hp=3da5529a39595495998570522e7d09a1a49257f6;hpb=ab761bf3e9e2b6dd81216db6c6aa2c69aaf07efd;p=sbcl.git diff --git a/src/code/macros.lisp b/src/code/macros.lisp index 3da5529..838d699 100644 --- a/src/code/macros.lisp +++ b/src/code/macros.lisp @@ -63,6 +63,12 @@ is not of the specified type. If an error is signalled and the restart is used to return, this can only return if the STORE-VALUE restart is invoked. In that case it will store into PLACE and start over." + ;; Detect a common user-error. + (when (and (consp type) (eq 'quote (car type))) + (error 'simple-reference-error + :format-control "Quoted type specifier in ~S: ~S" + :format-arguments (list 'check-type type) + :references (list '(:ansi-cl :macro check-type)))) ;; KLUDGE: We use a simpler form of expansion if PLACE is just a ;; variable to work around Python's blind spot in type derivation. ;; For more complex places getting the type derived should not @@ -216,7 +222,7 @@ invoked. In that case it will store into PLACE and start over." do (when existing (let ((sb!c::*current-path* (when (boundp 'sb!c::*source-paths*) - (or (gethash case sb!c::*source-paths*) + (or (sb!c::get-source-path case) sb!c::*current-path*)))) (warn 'duplicate-case-key-warning :key k