diff --git a/pkgs/data-lib/data/order.rkt b/pkgs/data-lib/data/order.rkt index 71d5f3907e..a6bb85449a 100644 --- a/pkgs/data-lib/data/order.rkt +++ b/pkgs/data-lib/data/order.rkt @@ -14,11 +14,12 @@ ;; provide a backwards compatible interface (just in case) ;; i.e., exporting prop:ordered-dict as opposed to using a ;; generated hidden property. -(define-generics (ordered-dict gen:ordered-dict prop:ordered-dict ordered-dict? - #:defined-table dict-def-table - #:defaults () - ;; private version needs all kw args, in order - #:define-contract #f) +(define-primitive-generics + (ordered-dict gen:ordered-dict prop:ordered-dict ordered-dict? + #:defined-table dict-def-table + #:defaults () + ;; private version needs all kw args, in order + #:define-contract #f) (dict-iterate-least ordered-dict) (dict-iterate-greatest ordered-dict) (dict-iterate-least/>? ordered-dict key) diff --git a/pkgs/racket-pkgs/racket-test/tests/generic/pr13737.rkt b/pkgs/racket-pkgs/racket-test/tests/generic/pr13737.rkt index 37be5f3d57..c668058510 100644 --- a/pkgs/racket-pkgs/racket-test/tests/generic/pr13737.rkt +++ b/pkgs/racket-pkgs/racket-test/tests/generic/pr13737.rkt @@ -20,10 +20,11 @@ (let () (local-require racket/private/generic) - (define-generics (foo gen:foo prop:foo foo? - #:defined-table dummy - #:defaults ([number? (define (meth foo #:kw kw) kw)]) - #:define-contract #f) + (define-primitive-generics + (foo gen:foo prop:foo foo? + #:defined-table dummy + #:defaults ([number? (define (meth foo #:kw kw) kw)]) + #:define-contract #f) (meth foo #:kw kw)) (check-equal? (meth 3 #:kw 5) 5)) diff --git a/racket/lib/collects/racket/generic.rkt b/racket/lib/collects/racket/generic.rkt index 4f7cc15581..c908c8f8c4 100644 --- a/racket/lib/collects/racket/generic.rkt +++ b/racket/lib/collects/racket/generic.rkt @@ -1,8 +1,7 @@ #lang racket/base (require racket/contract/base racket/contract/combinator - (rename-in "private/generic.rkt" - [define-generics define-generics/pre]) + "private/generic.rkt" (for-syntax racket/base racket/local racket/syntax syntax/stx)) ;; Convenience layer on top of racket/private/generic. @@ -66,10 +65,11 @@ (define/with-syntax gen-name (format-id #'name "gen:~a" #'name)) (define/with-syntax prop-name (generate-temporary #'name)) (define/with-syntax table-name table) - #'(define-generics/pre (name gen-name prop-name pred-name - #:defined-table table-name - #:defaults [default ...] - #:define-contract define-generics-contract) + #'(define-primitive-generics + (name gen-name prop-name pred-name + #:defined-table table-name + #:defaults [default ...] + #:define-contract define-generics-contract) method ...))])) ;; generate a contract combinator for instances of a generic interface diff --git a/racket/lib/collects/racket/private/dict.rkt b/racket/lib/collects/racket/private/dict.rkt index 61f5799475..c5fd47d983 100644 --- a/racket/lib/collects/racket/private/dict.rkt +++ b/racket/lib/collects/racket/private/dict.rkt @@ -3,11 +3,11 @@ (require racket/private/generic ; to avoid circular dependencies (for-syntax racket/base)) -(define-generics (dict gen:dict prop:dict dict? - #:defined-table dict-def-table - #:defaults () - ;; private version needs all kw args, in order - #:define-contract #f) +(define-primitive-generics (dict gen:dict prop:dict dict? + #:defined-table dict-def-table + #:defaults () + ;; private version needs all kw args, in order + #:define-contract #f) (dict-ref dict key [default]) (dict-set! dict key val) (dict-set dict key val) diff --git a/racket/lib/collects/racket/private/generic.rkt b/racket/lib/collects/racket/private/generic.rkt index c74d18f260..bf3dfdb1b7 100644 --- a/racket/lib/collects/racket/private/generic.rkt +++ b/racket/lib/collects/racket/private/generic.rkt @@ -10,8 +10,8 @@ (define-for-syntax (keyword-stx? v) (keyword? (syntax->datum v))) -(provide define-generics define/generic) -(define-syntax (define-generics stx) +(provide define-primitive-generics define/generic) +(define-syntax (define-primitive-generics stx) (syntax-case stx () ; can't use syntax-parse, since it depends on us ;; keyword arguments must _all_ be provided _in_order_. For the ;; user-facing version of `define-generics', see racket/generic.