Renamed private version of define-generics to define-primitive-generics.
This commit is contained in:
parent
8c00abbf48
commit
00ccb5850b
|
@ -14,11 +14,12 @@
|
||||||
;; provide a backwards compatible interface (just in case)
|
;; provide a backwards compatible interface (just in case)
|
||||||
;; i.e., exporting prop:ordered-dict as opposed to using a
|
;; i.e., exporting prop:ordered-dict as opposed to using a
|
||||||
;; generated hidden property.
|
;; generated hidden property.
|
||||||
(define-generics (ordered-dict gen:ordered-dict prop:ordered-dict ordered-dict?
|
(define-primitive-generics
|
||||||
#:defined-table dict-def-table
|
(ordered-dict gen:ordered-dict prop:ordered-dict ordered-dict?
|
||||||
#:defaults ()
|
#:defined-table dict-def-table
|
||||||
;; private version needs all kw args, in order
|
#:defaults ()
|
||||||
#:define-contract #f)
|
;; private version needs all kw args, in order
|
||||||
|
#:define-contract #f)
|
||||||
(dict-iterate-least ordered-dict)
|
(dict-iterate-least ordered-dict)
|
||||||
(dict-iterate-greatest ordered-dict)
|
(dict-iterate-greatest ordered-dict)
|
||||||
(dict-iterate-least/>? ordered-dict key)
|
(dict-iterate-least/>? ordered-dict key)
|
||||||
|
|
|
@ -20,10 +20,11 @@
|
||||||
(let ()
|
(let ()
|
||||||
(local-require racket/private/generic)
|
(local-require racket/private/generic)
|
||||||
|
|
||||||
(define-generics (foo gen:foo prop:foo foo?
|
(define-primitive-generics
|
||||||
#:defined-table dummy
|
(foo gen:foo prop:foo foo?
|
||||||
#:defaults ([number? (define (meth foo #:kw kw) kw)])
|
#:defined-table dummy
|
||||||
#:define-contract #f)
|
#:defaults ([number? (define (meth foo #:kw kw) kw)])
|
||||||
|
#:define-contract #f)
|
||||||
(meth foo #:kw kw))
|
(meth foo #:kw kw))
|
||||||
|
|
||||||
(check-equal? (meth 3 #:kw 5) 5))
|
(check-equal? (meth 3 #:kw 5) 5))
|
||||||
|
|
|
@ -1,8 +1,7 @@
|
||||||
#lang racket/base
|
#lang racket/base
|
||||||
(require racket/contract/base
|
(require racket/contract/base
|
||||||
racket/contract/combinator
|
racket/contract/combinator
|
||||||
(rename-in "private/generic.rkt"
|
"private/generic.rkt"
|
||||||
[define-generics define-generics/pre])
|
|
||||||
(for-syntax racket/base racket/local racket/syntax syntax/stx))
|
(for-syntax racket/base racket/local racket/syntax syntax/stx))
|
||||||
|
|
||||||
;; Convenience layer on top of racket/private/generic.
|
;; 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 gen-name (format-id #'name "gen:~a" #'name))
|
||||||
(define/with-syntax prop-name (generate-temporary #'name))
|
(define/with-syntax prop-name (generate-temporary #'name))
|
||||||
(define/with-syntax table-name table)
|
(define/with-syntax table-name table)
|
||||||
#'(define-generics/pre (name gen-name prop-name pred-name
|
#'(define-primitive-generics
|
||||||
#:defined-table table-name
|
(name gen-name prop-name pred-name
|
||||||
#:defaults [default ...]
|
#:defined-table table-name
|
||||||
#:define-contract define-generics-contract)
|
#:defaults [default ...]
|
||||||
|
#:define-contract define-generics-contract)
|
||||||
method ...))]))
|
method ...))]))
|
||||||
|
|
||||||
;; generate a contract combinator for instances of a generic interface
|
;; generate a contract combinator for instances of a generic interface
|
||||||
|
|
|
@ -3,11 +3,11 @@
|
||||||
(require racket/private/generic ; to avoid circular dependencies
|
(require racket/private/generic ; to avoid circular dependencies
|
||||||
(for-syntax racket/base))
|
(for-syntax racket/base))
|
||||||
|
|
||||||
(define-generics (dict gen:dict prop:dict dict?
|
(define-primitive-generics (dict gen:dict prop:dict dict?
|
||||||
#:defined-table dict-def-table
|
#:defined-table dict-def-table
|
||||||
#:defaults ()
|
#:defaults ()
|
||||||
;; private version needs all kw args, in order
|
;; private version needs all kw args, in order
|
||||||
#:define-contract #f)
|
#:define-contract #f)
|
||||||
(dict-ref dict key [default])
|
(dict-ref dict key [default])
|
||||||
(dict-set! dict key val)
|
(dict-set! dict key val)
|
||||||
(dict-set dict key val)
|
(dict-set dict key val)
|
||||||
|
|
|
@ -10,8 +10,8 @@
|
||||||
(define-for-syntax (keyword-stx? v)
|
(define-for-syntax (keyword-stx? v)
|
||||||
(keyword? (syntax->datum v)))
|
(keyword? (syntax->datum v)))
|
||||||
|
|
||||||
(provide define-generics define/generic)
|
(provide define-primitive-generics define/generic)
|
||||||
(define-syntax (define-generics stx)
|
(define-syntax (define-primitive-generics stx)
|
||||||
(syntax-case stx () ; can't use syntax-parse, since it depends on us
|
(syntax-case stx () ; can't use syntax-parse, since it depends on us
|
||||||
;; keyword arguments must _all_ be provided _in_order_. For the
|
;; keyword arguments must _all_ be provided _in_order_. For the
|
||||||
;; user-facing version of `define-generics', see racket/generic.
|
;; user-facing version of `define-generics', see racket/generic.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user