If I'm reading the expansion right, it looks like 'match' is keeping only one of the 'foo's in the output (it seems to put one of them in the disappeared use property on the 'foo?' in the (if (foo? x) ...) that it generates).
In other words, looks like a bug in match. Robby On Wed, Feb 15, 2012 at 3:30 AM, Pierpaolo Bernardi <olopie...@gmail.com> wrote: > Hello, > > (for company firewall reasons I cannot use the bug report facility. > Please bear with me). > > Racket version 5.2.1; > Environment: windows "Windows NT 6.1 (Build 7601) Service Pack 1" > (win32\i386\3m) (get-display-depth) = 32; > > If I put the following text in a buffer: > > ==== > #lang racket > > (struct foo (a)) > > (define (bar x) > (match x > ((foo #f) 0) > ((foo #t) 1))) > ==== > > Running check-syntax, the "foo" in the first branch of the match is > linked to the struct definition, while the foo in the second branch is > not linked. Is this the intended behaviour or there is a mistake? > > Cheers > P. > _________________________ > Racket Developers list: > http://lists.racket-lang.org/dev _________________________ Racket Developers list: http://lists.racket-lang.org/dev