From d01ea9737782aac9c62aaa5fb4ed9155876a6b31 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rgen=20Brandt?= Date: Tue, 26 Nov 2024 20:36:41 +0100 Subject: [PATCH 1/6] fix correspondence between location? and Location in typed/racket --- typed-racket-more/typed/xml.rkt | 10 ++++++--- typed-racket-test/unit-tests/xml-tests.rkt | 25 ++++++++++++++++++++++ 2 files changed, 32 insertions(+), 3 deletions(-) create mode 100644 typed-racket-test/unit-tests/xml-tests.rkt diff --git a/typed-racket-more/typed/xml.rkt b/typed-racket-more/typed/xml.rkt index c14b0157f..ea55b0b39 100644 --- a/typed-racket-more/typed/xml.rkt +++ b/typed-racket-more/typed/xml.rkt @@ -18,12 +18,16 @@ (Pair Symbol (Pair (Listof XExpr-Attribute) (Listof XExpr))) (Pair Symbol (Listof XExpr)))) -(require/typed/provide xml +(require/typed xml [#:struct location ([line : (U False Exact-Nonnegative-Integer)] [char : (U False Exact-Nonnegative-Integer)] - [offset : Exact-Nonnegative-Integer]) - #:type-name Location] + [offset : Exact-Nonnegative-Integer])]) + +(define-type Location + (U location Symbol False)) + +(require/typed/provide xml [#:struct source ([start : Location] [stop : Location]) 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))) + From 858d6d46a17dbc0db52c0ea2c6072f1bda0e6d0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rgen=20Brandt?= Date: Tue, 26 Nov 2024 20:41:31 +0100 Subject: [PATCH 2/6] maintain Location as struct type --- typed-racket-more/typed/xml.rkt | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/typed-racket-more/typed/xml.rkt b/typed-racket-more/typed/xml.rkt index ea55b0b39..79786644a 100644 --- a/typed-racket-more/typed/xml.rkt +++ b/typed-racket-more/typed/xml.rkt @@ -18,19 +18,15 @@ (Pair Symbol (Pair (Listof XExpr-Attribute) (Listof XExpr))) (Pair Symbol (Listof XExpr)))) -(require/typed xml +(require/typed/provide xml [#:struct location ([line : (U False Exact-Nonnegative-Integer)] [char : (U False Exact-Nonnegative-Integer)] - [offset : Exact-Nonnegative-Integer])]) - -(define-type Location - (U location Symbol False)) - -(require/typed/provide xml + [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]) From 3e52768e13237097410fedfe6172c547a798e27c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rgen=20Brandt?= Date: Mon, 14 Apr 2025 14:24:14 +0200 Subject: [PATCH 3/6] remove Number, add Pcdata to definition of XExpr type --- typed-racket-more/typed/xml.rkt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/typed-racket-more/typed/xml.rkt b/typed-racket-more/typed/xml.rkt index 79786644a..be31d7281 100644 --- a/typed-racket-more/typed/xml.rkt +++ b/typed-racket-more/typed/xml.rkt @@ -13,8 +13,8 @@ (U Comment P-I)) (define-type XExpr - (U XML-Misc Cdata Positive-Index - Number String Symbol + (U XML-Misc Cdata Pcdata Positive-Index + String Symbol (Pair Symbol (Pair (Listof XExpr-Attribute) (Listof XExpr))) (Pair Symbol (Listof XExpr)))) From 87fb4d5c33f719a7b4ce8997b327e52faf760d8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rgen=20Brandt?= Date: Wed, 16 Apr 2025 09:27:27 +0200 Subject: [PATCH 4/6] re-introduce Number --- typed-racket-more/typed/xml.rkt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/typed-racket-more/typed/xml.rkt b/typed-racket-more/typed/xml.rkt index be31d7281..1747af4b2 100644 --- a/typed-racket-more/typed/xml.rkt +++ b/typed-racket-more/typed/xml.rkt @@ -14,7 +14,7 @@ (define-type XExpr (U XML-Misc Cdata Pcdata Positive-Index - String Symbol + Number String Symbol (Pair Symbol (Pair (Listof XExpr-Attribute) (Listof XExpr))) (Pair Symbol (Listof XExpr)))) From 76e7ff44817fbc9f68e1435157b8a0522314728e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rgen=20Brandt?= Date: Mon, 21 Apr 2025 11:52:58 +0200 Subject: [PATCH 5/6] remove Number again. --- typed-racket-more/typed/xml.rkt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/typed-racket-more/typed/xml.rkt b/typed-racket-more/typed/xml.rkt index 1747af4b2..be31d7281 100644 --- a/typed-racket-more/typed/xml.rkt +++ b/typed-racket-more/typed/xml.rkt @@ -14,7 +14,7 @@ (define-type XExpr (U XML-Misc Cdata Pcdata Positive-Index - Number String Symbol + String Symbol (Pair Symbol (Pair (Listof XExpr-Attribute) (Listof XExpr))) (Pair Symbol (Listof XExpr)))) From a5469bb84b53ebd536d14ce948aeab158273af68 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rgen=20Brandt?= Date: Wed, 23 Apr 2025 17:39:01 +0200 Subject: [PATCH 6/6] re-introduce Number --- typed-racket-more/typed/xml.rkt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/typed-racket-more/typed/xml.rkt b/typed-racket-more/typed/xml.rkt index be31d7281..1747af4b2 100644 --- a/typed-racket-more/typed/xml.rkt +++ b/typed-racket-more/typed/xml.rkt @@ -14,7 +14,7 @@ (define-type XExpr (U XML-Misc Cdata Pcdata Positive-Index - String Symbol + Number String Symbol (Pair Symbol (Pair (Listof XExpr-Attribute) (Listof XExpr))) (Pair Symbol (Listof XExpr))))