X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcode%2Fearly-type.lisp;h=9999bffc76006b2438b594f69b75628d6512eb13;hb=8871a1f72225f959a454a1b77f7a0e85642ba427;hp=3a9a2897a9da9c7008b43cec9296039774ac2b6f;hpb=47da3aec921176b189868519273b5bddb8bcc737;p=sbcl.git diff --git a/src/code/early-type.lisp b/src/code/early-type.lisp index 3a9a289..9999bff 100644 --- a/src/code/early-type.lisp +++ b/src/code/early-type.lisp @@ -487,13 +487,10 @@ (or (built-in-classoid-translation spec) spec) spec)) (t - (let* (;; FIXME: This automatic promotion of FOO-style - ;; specs to (FOO)-style specs violates the ANSI - ;; standard. Unfortunately, we can't fix the - ;; problem just by removing it, since then things - ;; downstream should break. But at some point we - ;; should fix this and the things downstream too. - (lspec (if (atom spec) (list spec) spec)) + (when (and (atom spec) + (member spec '(and or not member eql satisfies values))) + (error "The symbol ~S is not valid as a type specifier." spec)) + (let* ((lspec (if (atom spec) (list spec) spec)) (fun (info :type :translator (car lspec)))) (cond (fun (funcall fun lspec))