diff --git a/collects/mzlib/class.ss b/collects/mzlib/class.ss index 2b1c589..43d9a3c 100644 --- a/collects/mzlib/class.ss +++ b/collects/mzlib/class.ss @@ -166,12 +166,13 @@ [(private . rest) (bad "ill-formed private clause" stx)] [(form idp ...) - (ormap (lambda (f) (module-identifier=? (syntax form) f)) - (list (quote-syntax public) - (quote-syntax override) - (quote-syntax public-final) - (quote-syntax override-final) - (quote-syntax inherit))) + (and (identifier? (syntax form)) + (ormap (lambda (f) (module-identifier=? (syntax form) f)) + (list (quote-syntax public) + (quote-syntax override) + (quote-syntax public-final) + (quote-syntax override-final) + (quote-syntax inherit)))) (let ([form (syntax-e (syntax form))]) (for-each (lambda (idp) @@ -217,8 +218,8 @@ [(null? l) null] [(and (stx-pair? (car l)) (let ([id (stx-car (car l))]) - (identifier? id) - (ormap (lambda (k) (module-identifier=? k id)) kws))) + (and (identifier? id) + (ormap (lambda (k) (module-identifier=? k id)) kws)))) (if reverse? (loop (cdr l)) (cons (car l) (loop (cdr l))))] @@ -528,8 +529,11 @@ [(define-values (id ...) expr) (syntax/loc e (set!-values (id ...) expr))] [(-init idp ...) - (ormap (lambda (it) (module-identifier=? it (syntax -init))) - (list (quote-syntax init) (quote-syntax init-field))) + (and (identifier? (syntax -init)) + (ormap (lambda (it) + (module-identifier=? it (syntax -init))) + (list (quote-syntax init) + (quote-syntax init-field)))) (let ([ids (map (lambda (idp) (if (identifier? idp) diff --git a/collects/mzlib/etc.ss b/collects/mzlib/etc.ss index 5dcaf65..99ea435 100644 --- a/collects/mzlib/etc.ss +++ b/collects/mzlib/etc.ss @@ -193,6 +193,7 @@ (lambda (defn) (let ([d (local-expand defn + 'internal-define (kernel-form-identifier-list (quote-syntax here)))]) (syntax-case d (define-values) diff --git a/collects/mzlib/private/sigutil.ss b/collects/mzlib/private/sigutil.ss index 7d2ab3a..bc3cc8c 100644 --- a/collects/mzlib/private/sigutil.ss +++ b/collects/mzlib/private/sigutil.ss @@ -469,6 +469,7 @@ (if (eof-object? s) s (local-expand s + 'internal-define (append user-stx-forms local-vars))))] diff --git a/collects/mzlib/unit.ss b/collects/mzlib/unit.ss index 72a4388..939651a 100644 --- a/collects/mzlib/unit.ss +++ b/collects/mzlib/unit.ss @@ -90,6 +90,7 @@ (lambda (defn-or-expr) (local-expand defn-or-expr + 'internal-define (append (kernel-form-identifier-list (quote-syntax here)) declared-names)))