diff --git a/pkgs/racket-pkgs/racket-test/tests/racket/macro.rktl b/pkgs/racket-pkgs/racket-test/tests/racket/macro.rktl index a2705f034a..4cf34d1bea 100644 --- a/pkgs/racket-pkgs/racket-test/tests/racket/macro.rktl +++ b/pkgs/racket-pkgs/racket-test/tests/racket/macro.rktl @@ -1126,4 +1126,14 @@ ;; ---------------------------------------- +(let () + (struct foo (id) + #:property prop:rename-transformer 0) + + (test 'x syntax-e + (rename-transformer-target + (chaperone-struct (foo #'x) foo-id (lambda (f x) x))))) + +;; ---------------------------------------- + (report-errs) diff --git a/racket/src/racket/src/struct.c b/racket/src/racket/src/struct.c index acfaf8f212..8af9585157 100644 --- a/racket/src/racket/src/struct.c +++ b/racket/src/racket/src/struct.c @@ -1799,7 +1799,7 @@ Scheme_Object *scheme_rename_transformer_id(Scheme_Object *o) v = scheme_struct_type_property_ref(rename_transformer_property, o); if (SCHEME_BOXP(v)) v = SCHEME_BOX_VAL(v); if (SCHEME_INTP(v)) { - v = ((Scheme_Structure *)o)->slots[SCHEME_INT_VAL(v)]; + v = scheme_struct_ref(o, SCHEME_INT_VAL(v)); if (!is_stx_id(v)) { v = scheme_datum_to_syntax(scheme_intern_symbol("?"), scheme_false, scheme_false, 0, 0); }