From 6a0bbc301ebcf7d8e846652f7437b1434741fb66 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Tue, 30 Apr 2019 09:31:51 -0600 Subject: [PATCH] add missing test case Add test case intended to be part of a3fcaf92df. --- .../racket-test-core/tests/racket/object.rktl | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/pkgs/racket-test-core/tests/racket/object.rktl b/pkgs/racket-test-core/tests/racket/object.rktl index 9d1dd14043..f3c54d11d0 100644 --- a/pkgs/racket-test-core/tests/racket/object.rktl +++ b/pkgs/racket-test-core/tests/racket/object.rktl @@ -2300,6 +2300,29 @@ (test #t 'has-binding-match? (for/or ([b (in-list binds)]) (free-identifier=? r b))))) +;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;; Check that `define/public` doesn't add a dye pack unnecessarily + +(define-syntax (change-five-to-six stx) + (syntax-case stx () + [(_ e) + (let loop ([e (local-expand #'e (syntax-local-context) (list #'begin #'define))]) + (syntax-case e (begin) + [(begin . e) + #`(begin #,@(map loop (syntax->list #'e)))] + [(define id rhs) + #`(define id #,(loop #'rhs))] + [5 #'6] + [_ e]))])) + +(let () + (define-local-member-name x y) + (test 6 values (send (new (class object% + (change-five-to-six + (define/public (x) 5)) + (super-new))) + x))) + ;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; (report-errs)