Fixed bugs in COLLECT-TEMPLATE-VARS for NUMBER-TEMPLATEs.
Wed Apr 27 20:44:25 UTC 2005 mantoniotti
* Fixed bugs in COLLECT-TEMPLATE-VARS for NUMBER-TEMPLATEs.
Fixed bugs in COLLECT-TEMPLATE-VARS for NUMBER-TEMPLATEs.
If a variable was present, then the method was not returning a list.
The treatment of constants like PI was also incorrect, as the numeric
value was returned. Retunrning () seems the right thing to do
instead.
diff -rN -u old-cl-unification-1/templates-hierarchy.lisp new-cl-unification-1/templates-hierarchy.lisp
--- old-cl-unification-1/templates-hierarchy.lisp 2013-07-21 19:57:17.000000000 +0000
+++ new-cl-unification-1/templates-hierarchy.lisp 2013-07-21 19:57:17.000000000 +0000
@@ -485,10 +485,13 @@
(let ((template (number-template-number template)))
(etypecase template
(number ())
- (symbol (cond ((variablep template) template)
+ (symbol (cond ((and (variablep template) (not (variable-any-p template)))
+ (list template))
((and (boundp template)
(numberp (symbol-value template)))
- (symbol-value template))
+ ;; This handles cases like #T(number pi)
+ ;; It may be too broad, but for the time being it seems ok.
+ nil)
(t
(error "Invalid number template ~S." template)))))))