
added #:defaults arg to ~optional cleaned up error-reporting of special forms (not generated code) svn: r15848
17 lines
645 B
Scheme
17 lines
645 B
Scheme
#lang scheme/base
|
|
(provide wrong-syntax
|
|
current-syntax-context)
|
|
|
|
(define current-syntax-context (make-parameter #f))
|
|
|
|
(define (wrong-syntax stx #:extra [extras null] format-string . args)
|
|
(unless (or (eq? stx #f) (syntax? stx))
|
|
(raise-type-error 'wrong-syntax "syntax or #f" 0 (list* stx format-string args)))
|
|
(let* ([ctx (current-syntax-context)]
|
|
[blame (and (syntax? ctx) (syntax-property ctx 'report-errors-as))])
|
|
(raise-syntax-error (if (symbol? blame) blame #f)
|
|
(apply format format-string args)
|
|
ctx
|
|
stx
|
|
extras)))
|