diff --git a/typed-racket-doc/typed-racket/scribblings/reference/libraries.scrbl b/typed-racket-doc/typed-racket/scribblings/reference/libraries.scrbl index 707823ce..f05061e5 100644 --- a/typed-racket-doc/typed-racket/scribblings/reference/libraries.scrbl +++ b/typed-racket-doc/typed-racket/scribblings/reference/libraries.scrbl @@ -174,6 +174,21 @@ and the @racket[URL] and @racket[Path/Param] types from @defmodule/incl[typed/racket/async-channel @history[#:added "1.1"]] @defmodule/incl[typed/racket/date] @defmodule/incl[typed/racket/draw] + +@defmodule/incl[typed/racket/extflonum]{ + @deftogether[[ + @defform[(for/extflvector type-ann-maybe (for-clause ...) expr ...+)] + @defform[(for*/extflvector type-ann-maybe (for-clause ...) expr ...+)] + ]] +} + +@defmodule/incl[typed/racket/flonum]{ + @deftogether[[ + @defform[(for/flvector type-ann-maybe (for-clause ...) expr ...+)] + @defform[(for*/flvector type-ann-maybe (for-clause ...) expr ...+)] + ]] +} + @defmodule/incl[typed/racket/gui] @defmodule/incl[typed/racket/gui/no-check] @defmodule/incl[typed/racket/random @history[#:added "1.5"]] diff --git a/typed-racket-doc/typed-racket/scribblings/reference/special-forms.scrbl b/typed-racket-doc/typed-racket/scribblings/reference/special-forms.scrbl index 028c2b94..47665ba7 100644 --- a/typed-racket-doc/typed-racket/scribblings/reference/special-forms.scrbl +++ b/typed-racket-doc/typed-racket/scribblings/reference/special-forms.scrbl @@ -251,13 +251,9 @@ annotated with a @racket[Listof] type. All annotations are optional. } @deftogether[[ -@defform[(for/flvector type-ann-maybe (for-clause ...) expr ...+)] -@defform[(for/extflvector type-ann-maybe (for-clause ...) expr ...+)] @defform[(for/and type-ann-maybe (for-clause ...) expr ...+)] @defform[(for/first type-ann-maybe (for-clause ...) expr ...+)] @defform[(for/last type-ann-maybe (for-clause ...) expr ...+)] -@defform[(for*/flvector type-ann-maybe (for-clause ...) expr ...+)] -@defform[(for*/extflvector type-ann-maybe (for-clause ...) expr ...+)] @defform[(for*/and type-ann-maybe (for-clause ...) expr ...+)] @defform[(for*/first type-ann-maybe (for-clause ...) expr ...+)] @defform[(for*/last type-ann-maybe (for-clause ...) expr ...+)] diff --git a/typed-racket-more/typed/racket/extflonum.rkt b/typed-racket-more/typed/racket/extflonum.rkt new file mode 100644 index 00000000..167050ce --- /dev/null +++ b/typed-racket-more/typed/racket/extflonum.rkt @@ -0,0 +1,8 @@ +#lang typed/racket/base + +(provide (all-from-out racket/extflonum) + (rename-out [for/extflvector: for/extflvector] + [for*/extflvector: for*/extflvector])) + +(require (except-in racket/extflonum for/extflvector for*/extflvector)) + diff --git a/typed-racket-more/typed/racket/flonum.rkt b/typed-racket-more/typed/racket/flonum.rkt new file mode 100644 index 00000000..9b29b6d2 --- /dev/null +++ b/typed-racket-more/typed/racket/flonum.rkt @@ -0,0 +1,8 @@ +#lang typed/racket/base + +(provide (all-from-out racket/flonum) + (rename-out [for/flvector: for/flvector] + [for*/flvector: for*/flvector])) + +(require (except-in racket/flonum for/flvector for*/flvector)) + diff --git a/typed-racket-test/unit-tests/typecheck-tests.rkt b/typed-racket-test/unit-tests/typecheck-tests.rkt index f5c7d81c..95697e66 100644 --- a/typed-racket-test/unit-tests/typecheck-tests.rkt +++ b/typed-racket-test/unit-tests/typecheck-tests.rkt @@ -290,8 +290,8 @@ (except-in racket/class class) racket/file racket/fixnum - racket/flonum - racket/extflonum + typed/racket/flonum + typed/racket/extflonum racket/function racket/future racket/list @@ -2557,6 +2557,29 @@ (list f1 f2 f3)) (-lst* -Flonum -Fixnum -ExtFlonum)] + ;; The typechecker should be able to handle the expansion of + ;; for/flvector, for*/flvector, for/extflvector, and for*/extflvector + [tc-e + (for/flvector ([a (list 0 1 1 2 3)] + [b (list 1 1 2 3 5)]) + (real->double-flonum (+ a b))) + -FlVector] + [tc-e + (for*/flvector ([a (list 0 1 1 2 3)] + [b (list 1 1 2 3 5)]) + (real->double-flonum (+ a b))) + -FlVector] + [tc-e + (for/extflvector ([a (list 0 1 1 2 3)] + [b (list 1 1 2 3 5)]) + (real->extfl (+ a b))) + -ExtFlVector] + [tc-e + (for*/extflvector ([a (list 0 1 1 2 3)] + [b (list 1 1 2 3 5)]) + (real->extfl (+ a b))) + -ExtFlVector] + ;; for/hash, for*/hash - PR 14306 [tc-e (for/hash: : (HashTable Symbol String) ([x (in-list '(x y z))]