diff --git a/typed-racket-more/typed/xml.rkt b/typed-racket-more/typed/xml.rkt index c14b0157f..79786644a 100644 --- a/typed-racket-more/typed/xml.rkt +++ b/typed-racket-more/typed/xml.rkt @@ -25,8 +25,8 @@ [offset : Exact-Nonnegative-Integer]) #:type-name Location] [#:struct source - ([start : Location] - [stop : Location]) + ([start : (U Location Symbol False)] + [stop : (U Location Symbol False)]) #:type-name Source] [#:struct external-dtd ([system : String]) diff --git a/typed-racket-test/unit-tests/xml-tests.rkt b/typed-racket-test/unit-tests/xml-tests.rkt new file mode 100644 index 000000000..81e0e97de --- /dev/null +++ b/typed-racket-test/unit-tests/xml-tests.rkt @@ -0,0 +1,25 @@ +#lang typed/racket/base + +(module+ test + + (require typed/rackunit + "../../typed-racket-more/typed/xml.rkt") + + (let ([xml-p-i + (p-i #f #f 'xml "version=\"1.0\" encoding=\"UTF-8\"")]) + (check-eq? + (source-start xml-p-i) + #f) + (check-eq? + (source-stop xml-p-i) + #f)) + + (let ([xml-p-i + (p-i 'racket 'racket 'xml "version=\"1.0\" encoding=\"UTF-8\"")]) + (check-eq? + (source-start xml-p-i) + 'racket) + (check-eq? + (source-stop xml-p-i) + 'racket))) +