Opened 11 years ago

Closed 11 years ago

#212 closed defect (fixed)

expand* and ppexpand* break on the "and" macro

Reported by: Jeronimo Pellegrini Owned by:
Priority: minor Milestone:
Component: extensions Version:
Keywords: expand-full Cc:
Estimated difficulty:

Description

Hi,

I have tried sending the definition of "and" from R5RS,

(define-syntax my-and
  (syntax-rules ()
    ((my-and) #t)
    ((my-and test) test)
    ((my-and test1 test2 ...)
     (if test1 (my-and test2 ...) #f))))

to expand* and ppexpand*, and they break:

#;2> (ppexpand* '(my-and 1 2 3))

Error: (null-list?) bad argument type - not a list: 3

	Call history:

	<eval>		(rename22 (##core#syntax my-and))
	<eval>		(##sys#cons (quote21 #f) (quote21 ()))
	<eval>		(##sys#cdr input13)
	<eval>		(##sys#eq? tail23 (quote ()))
	<eval>		(##sys#pair? temp24)
	<eval>		(##sys#eq? (##sys#cdr temp24) (quote ()))
	<eval>		(##sys#cdr temp24)
	<eval>		(##sys#car tail23)	<--

But the macro works fine:

#;3> (my-and 1 2 3)
3
#;4> (my-and 2 #f 4)
#f

But it works with other macros I have been using.

I'm using git Chicken master/HEAD, and expand-full 1.0.0.

J.

Change History (3)

comment:1 Changed 11 years ago by felix winkelmann

Milestone: 4.5.0

comment:2 Changed 11 years ago by Jeronimo Pellegrini

Looks like this has been fixed by in svn! :-)

Thanks Kon!

comment:3 Changed 11 years ago by Kon Lovett

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.