`syntax-local-introduce' fixed the problem. Thanks!
Vincent At Sun, 14 Aug 2011 08:20:59 -0500, Robby Findler wrote: > > Yes, those are the properties that you want. I guess the problem is > that the identifiers don't actually bind each other (rather than Check > Syntax not finding the properties). > > For example, this macro works fine: > > (define-syntax (m stx) > (syntax-case stx () > [(_ id1 id2) > (syntax-property > (syntax-property > #`1 > 'disappeared-use (list (syntax-local-introduce #'id1))) > 'disappeared-binding (list (syntax-local-introduce #'id2)))])) > > When you put the syntax object into a property, then it doesn't get > the cancelling mark that the expander puts on when a syntax object is > returned from a transformer, so you have to put it on yourself. At > least that's one way to do it. > > I added a note about this to the Check Syntax section of the plugins > manual plus a pointer to a relevant helper library. > > Robby > > On Fri, Aug 12, 2011 at 4:18 PM, Vincent St-Amour <[email protected]> > wrote: > > > > I have a macro that restructures `let' binding lists, and I would like > > to have it play nice with Check Syntax. > > > > Here's an example: > > > > (let ([x 1.2+3.4i]) > > body ...) > > > > is expanded to: > > > > (let ([x-real 1.2] > > [x-imag 3.4]) > > body ...) > > > > with references to `x' replaced by references to `x-real' and `x-imag' > > appropriately. > > > > The macro works fine, but causes Check Syntax to not draw arrows > > between uses of `x' in the body and the binding occurrence of > > `x'. Which makes sense, given that none of these are present in the > > fully expanded code. > > > > It seems that the 'disappeared-binding syntax property may be what I > > want, but I haven't figured out how to use it, and the documentation > > does not say much about it. > > > > I tried adding the 'disappeared-binding property with a list > > containing the syntax object corresponding to the binding occurrence > > of `x' as value, and 'disappeared-use properties with the syntax > > objects corresponding to the references to `x' that were removed. > > > > I tried adding these syntax properties in various places in the > > program, but couldn't get Check Syntax to show the arrows. > > > > Is 'disappeared-binding what I want? If so, where do I need to put the > > property to get Check Syntax to recognize it? > > > > Vincent > > _________________________________________________ > > For list-related administrative tasks: > > http://lists.racket-lang.org/listinfo/users > > _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users

