aboutsummaryrefslogtreecommitdiff
path: root/src/boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/boot')
-rw-r--r--src/boot/ast.boot8
-rw-r--r--src/boot/strap/ast.clisp9
2 files changed, 9 insertions, 8 deletions
diff --git a/src/boot/ast.boot b/src/boot/ast.boot
index 5822f3d9..052ae2d6 100644
--- a/src/boot/ast.boot
+++ b/src/boot/ast.boot
@@ -696,12 +696,12 @@ sequence?(x,pred) ==
++ Generate code for a membership test `x in seq' where `seq'
++ is a sequence (e.g. a list)
bfMember(var,seq) ==
- var is ["char",.] or sequence?(seq,function integer?) =>
- ["MEMBER",var,seq,KEYWORD::TEST,"EQL"]
+ integer? var or var is ["char",.] or sequence?(seq,function integer?) =>
+ ["MEMBER",var,seq,KEYWORD::TEST, ["FUNCTION", "EQL"]]
defQuoteId var or sequence?(seq,function symbol?) =>
["MEMQ",var,seq]
- sequence?(seq,function string?) =>
- ["MEMBER",var,seq,KEYWORD::TEST,"STRING="]
+ string? var or sequence?(seq,function string?) =>
+ ["MEMBER",var,seq,KEYWORD::TEST,["FUNCTION", "STRING="]]
["MEMBER",var,seq]
bfInfApplication(op,left,right)==
diff --git a/src/boot/strap/ast.clisp b/src/boot/strap/ast.clisp
index 54e3f4f5..220253f9 100644
--- a/src/boot/strap/ast.clisp
+++ b/src/boot/strap/ast.clisp
@@ -1103,16 +1103,17 @@
(PROG (|ISTMP#1|)
(RETURN
(COND
- ((OR (AND (CONSP |var|) (EQ (CAR |var|) '|char|)
+ ((OR (INTEGERP |var|)
+ (AND (CONSP |var|) (EQ (CAR |var|) '|char|)
(PROGN
(SETQ |ISTMP#1| (CDR |var|))
(AND (CONSP |ISTMP#1|) (NULL (CDR |ISTMP#1|)))))
(|sequence?| |seq| #'INTEGERP))
- (LIST 'MEMBER |var| |seq| :TEST 'EQL))
+ (LIST 'MEMBER |var| |seq| :TEST (LIST 'FUNCTION 'EQL)))
((OR (|defQuoteId| |var|) (|sequence?| |seq| #'SYMBOLP))
(LIST 'MEMQ |var| |seq|))
- ((|sequence?| |seq| #'STRINGP)
- (LIST 'MEMBER |var| |seq| :TEST 'STRING=))
+ ((OR (STRINGP |var|) (|sequence?| |seq| #'STRINGP))
+ (LIST 'MEMBER |var| |seq| :TEST (LIST 'FUNCTION 'STRING=)))
(T (LIST 'MEMBER |var| |seq|))))))
(DEFUN |bfInfApplication| (|op| |left| |right|)