typed-racket/typed-racket-test/succeed/annotation-syntax-override.rkt

22 lines
587 B
Racket

#lang racket
(require rackunit
typed-racket/typed-reader)
(test-case
"Annotation reader syntax"
(define stx (read-syntax 'in (open-input-string "#{x : T}")))
(check-equal? (syntax-e stx) 'x)
(check-equal? (syntax-property stx 'type-label) 'T))
(test-case
"Overridden annotation reader syntax"
(define (read* c in . args)
(read-char in)
'replacement)
(define stx
(parameterize ([current-readtable
(make-readtable #f #\{ 'dispatch-macro read*)])
(read-syntax 'in (open-input-string "#{}"))))
(check-equal? (syntax-e stx) 'replacement))