diff --git a/typed-racket-lib/typed-racket/optimizer/float-complex.rkt b/typed-racket-lib/typed-racket/optimizer/float-complex.rkt index 36f20ecf..4f86c525 100644 --- a/typed-racket-lib/typed-racket/optimizer/float-complex.rkt +++ b/typed-racket-lib/typed-racket/optimizer/float-complex.rkt @@ -83,7 +83,7 @@ (loop (mark-as-non-float new-o new-o) (stx-cdr cs))) ;; we've hit floats, can start coercing - (n-ary->binary this-syntax unsafe (cons o cs))))) + (n-ary->binary this-syntax unsafe (cons #`(real->double-flonum #,o) cs))))) ;; a+bi / c+di, names for real and imag parts of result -> one let-values binding clause (define (unbox-one-complex-/ a b c d res-real res-imag) diff --git a/typed-racket-test/optimizer/tests/float-complex-float.rkt b/typed-racket-test/optimizer/tests/float-complex-float.rkt index 8f2d1efb..10bbbc4b 100644 --- a/typed-racket-test/optimizer/tests/float-complex-float.rkt +++ b/typed-racket-test/optimizer/tests/float-complex-float.rkt @@ -70,7 +70,7 @@ END -inf.0-1.0688403264087485i +nan.0+0.0i -0.8414709848078965-4.5353337789114595e-57i -5.381428268223429e-17-0.9694319337396835i +1524588609536.0-0.9694319337396835i 2.2152990102767944+0.0i -5.84330415295662e+36-2.521848811753627e+37i -inf.0-0.0i