From aafdafb1cf04162fbcb203e10ebb773a1e78c63b Mon Sep 17 00:00:00 2001 From: Sam Tobin-Hochstadt Date: Mon, 22 Jun 2020 16:39:05 -0400 Subject: [PATCH] Copy fewer props in class forms that expand to macros. Revises cd996c3b6c (see #3240) to only copy the neccessary properties. Copying all properties interfes with Typed Racket's class system parsing. --- racket/collects/racket/private/class-internal.rkt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/racket/collects/racket/private/class-internal.rkt b/racket/collects/racket/private/class-internal.rkt index cd6ad0e777..816f9ac59a 100644 --- a/racket/collects/racket/private/class-internal.rkt +++ b/racket/collects/racket/private/class-internal.rkt @@ -373,6 +373,9 @@ (if (null? l) null (let ([e (expand (car l))]) + (define (copy-prop stx . ps) (for/fold ([stx stx]) + ([p ps]) + (syntax-property stx p (syntax-property e p)))) (syntax-case e (begin define-syntaxes define-values) [(begin . _) (loop (append @@ -388,7 +391,8 @@ (syntax-local-bind-syntaxes (syntax->list #'(id ...)) #'rhs def-ctx) (with-syntax ([(id ...) (map syntax-local-identifier-as-binding (syntax->list #'(id ...)))]) - (cons (datum->syntax e (list #'define-syntaxes #'(id ...) #'rhs) e e) + (cons (copy-prop (syntax/loc e (define-syntaxes (id ...) rhs)) + 'disappeared-use 'origin 'disappeared-binding) (loop (cdr l))))))] [(define-values (id ...) rhs) (andmap identifier? (syntax->list #'(id ...)))