[racket] TR Regression: Types for regexp operations
Hi Typed Racket folks,
I checked out the development version of Racket today, and noticed what
I believe to be a regression: TR thinks that regexp-match and friends
return a String when given an Input-Port, but in fact they return Bytes:
; as expected: string input returns String
(regexp-match #rx"^[0-9]" "100")
- : (U False (Pairof String (Listof (U String False))))
'("1")
; wrong: bytes typed as String
(regexp-match #rx"^[0-9]" (open-input-string "100"))
- : (U False (Pairof String (Listof (U String False))))
; ^^^^^^
'(#"1")
; in 5.1.1:
(regexp-match #rx"^[0-9]" (open-input-string "100"))
- : (U False (Listof (U Bytes False)))
'(#"1")
Also affected:
regexp-match*
regexp-try-match
regexp-match-peek
regexp-match-peek-immediate
regexp-split
(possibly others)
I have not confirmed this but I suspect commit #
029651b9eeaed6b4cecb800da2c01fa6cbed1270.
By the way, is there a more official way to submit a bug report? I
couldn't see one on racket-lang.org...should I have sent this to the dev
list?
Best,
Richard