18 lines
653 B
Racket
18 lines
653 B
Racket
#lang racket/base
|
|
|
|
(define (check-bad form)
|
|
(with-handlers ([exn:fail? (lambda (exn)
|
|
(define msg (exn-message exn))
|
|
(unless (regexp-match #rx"unbound identifier.*y$" msg)
|
|
(raise exn)))])
|
|
(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)))
|
|
|