aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ChangeLog4
-rw-r--r--src/boot/ast.boot1
-rw-r--r--src/boot/strap/ast.clisp1
3 files changed, 6 insertions, 0 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 62f08a88..a6e5f0a6 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2011-07-14 Gabriel Dos Reis <gdr@cs.tamu.edu>
+
+ * boot/ast.boot (bfIS1): Tidy test for cons cells.
+
2011-07-13 Gabriel Dos Reis <gdr@cs.tamu.edu>
* interp/functor.boot (CategoryPrint): Move from category.boot.
diff --git a/src/boot/ast.boot b/src/boot/ast.boot
index 190fc926..1af82d64 100644
--- a/src/boot/ast.boot
+++ b/src/boot/ast.boot
@@ -677,6 +677,7 @@ bfIS1(lhs,rhs) ==
rhs is ['CONS,a,b] =>
a is "DOT" =>
b = nil => bfAND [['CONSP,lhs],['NULL,['CDR,lhs]]]
+ b is "DOT" => ['CONSP,lhs]
bfAND [['CONSP,lhs],bfIS1(['CDR,lhs],b)]
b = nil =>
bfAND [['CONSP,lhs],['NULL,['CDR,lhs]],bfIS1(['CAR,lhs],a)]
diff --git a/src/boot/strap/ast.clisp b/src/boot/strap/ast.clisp
index 33bfc335..8a8a75d7 100644
--- a/src/boot/strap/ast.clisp
+++ b/src/boot/strap/ast.clisp
@@ -1083,6 +1083,7 @@
((NULL |b|)
(|bfAND| (LIST (LIST 'CONSP |lhs|)
(LIST 'NULL (LIST 'CDR |lhs|)))))
+ ((EQ |b| 'DOT) (LIST 'CONSP |lhs|))
(T (|bfAND| (LIST (LIST 'CONSP |lhs|)
(|bfIS1| (LIST 'CDR |lhs|) |b|))))))
((NULL |b|)