From c8118dd93c9cb5190d588f5cf91fc75f38266ace Mon Sep 17 00:00:00 2001 From: Juan Jose Garcia Ripoll Date: Mon, 13 Jul 2009 11:48:49 +0200 Subject: [PATCH] The utility functions for ENSURE-*-TYPE returned the argument type in the third and not in the second value (cmpnum.lsp) --- src/cmp/cmpnum.lsp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/cmp/cmpnum.lsp b/src/cmp/cmpnum.lsp index 8ba87570e..1d3b2c31f 100644 --- a/src/cmp/cmpnum.lsp +++ b/src/cmp/cmpnum.lsp @@ -90,10 +90,10 @@ (maximum-number-type general-type general-type)) (defun ensure-nonrational-type (general-type) - (maximum-number-type 'single-float general-type)) + (maximum-number-type general-type 'single-float)) (defun ensure-real-type (general-type) - (maximum-number-type 'integer general-type :only-real)) + (maximum-number-type general-type 'integer :only-real)) (defun arithmetic-propagator (op1-type others integer-result) ;; Propagates types for an associative operator (we do not care which one). @@ -179,6 +179,8 @@ (def-type-propagator sqrt (fname arg) (multiple-value-bind (output arg) (ensure-nonrational-type arg) + (print arg) + (print (if (type>= '(REAL 0 *) arg) output 'NUMBER)) (values (list arg) (if (type>= '(REAL 0 *) arg) output 'NUMBER))))