diff --git a/src/compiler/float-tran.lisp b/src/compiler/float-tran.lisp index fcc0abbaab508a84c983b01fb588bad35296c778..9ce1ab251f05da22c047e76498c13ac2a8514d9d 100644 --- a/src/compiler/float-tran.lisp +++ b/src/compiler/float-tran.lisp @@ -76,7 +76,7 @@ '(%double-double-float n)) ((csubtypep tspec (specifier-type 'double-float)) '(%double-float n)) - ((csubtypep tspec (specifier-type 'float)) + ((csubtypep tspec (specifier-type 'single-float)) '(%single-float n)) #+double-double ((csubtypep tspec (specifier-type '(complex double-double-float))) diff --git a/tests/issues.lisp b/tests/issues.lisp index 1640906b3fe26ce087be24e1afdf5e82b92538e6..4f7f5ed7d35a6016bc8e0e4f4e2e1b8e8db42f4c 100644 --- a/tests/issues.lisp +++ b/tests/issues.lisp @@ -200,3 +200,13 @@ tests)) `(progn ,@(nreverse tests))))) (make-tests))) + +(define-test issue.22 + (:tag :issues) + (let ((tester (compile nil '(lambda (x) + (coerce x 'float))))) + (assert-eql 1.0 (funcall tester 1)) + (assert-eql 2f0 (funcall tester 2f0)) + (assert-eql 3d0 (funcall tester 3d0)) + (assert-eql 4w0 (funcall tester 4w0)))) +