fix define-primitive' and provide-primitive'

Allow the implement to follow the `define-primitive'
 or `provide-primitive' declaration.
This commit is contained in:
Matthew Flatt 2011-07-09 16:57:56 -06:00
parent 0acf9834f7
commit 3d03e8f884
2 changed files with 6 additions and 1 deletions

View File

@ -25,7 +25,7 @@
name)])
#'(begin
;; Make sure that `implementation' is bound:
(define-values () (begin implementation (values)))
(define-values () (begin (lambda () implementation) (values)))
;; Bind `name':
(define-syntax name
(fo:make-first-order

View File

@ -8,5 +8,10 @@
(expand form)
(error 'check-bad "failed: ~v" form)))
(define (check-good form)
(expand form))
(check-bad `(,#'module m racket/base (require lang/prim) (define-primitive x y)))
(check-bad `(,#'module m racket/base (require lang/prim) (provide-primitive y)))
(check-good `(,#'module m racket/base (require lang/prim) (provide-primitive y) (define (y z) z)))