+ (when (dd-conc-name defstruct)
+ ;; the warning here is useful, but in principle we cannot
+ ;; distinguish between legitimate and erroneous use of
+ ;; these names when :CONC-NAME is NIL. In the common
+ ;; case (CONC-NAME non-NIL), there are alternative ways
+ ;; of writing code with the same effect, so a full
+ ;; warning is justified.
+ (typecase name
+ ((member :conc-name :constructor :copier :predicate :include
+ :print-function :print-object :type :initial-offset :pure)
+ (warn "slot name of ~S indicates probable syntax error in DEFSTRUCT" name))))
+ (values name default default-p