On 09/23/2011 07:17 AM, Carl Eastlund wrote:
On Wed, Sep 21, 2011 at 7:44 PM, Ryan Culpepper<r...@cs.utah.edu> wrote:
This particular bug only affects patterns of the form
(<stuff> . var:expr)
If you've seen pattern variables get non-syntax values in some other way,
please let me know! (BTW, by "pattern variable" I mean a name bound directly
in the pattern; "nested attributes" like var.value are allowed to contain
non-syntax values.)
...except for pattern variables nested under ellipses, which are bound
to lists; or pattern variables bound under ~or patterns, or under
~optional without #:defaults, which may be bound to #false. Right?
And I assume by "pattern variable" you are excluding the ~bind action
pattern, the #:attr pattern directive, and the #:defaults clause of
~optional, all of which may supply arbitrary values; presumably those
are "attributes" but not "pattern variables" per se.
Yes, you're right. Other than those.
What I really meant was if you can use syntax-parse to make the
expression #'x evaluate to something other than a syntax object, that's
a bug. Nested attributes are checked when used in syntax templates; if
they don't have syntax values, an error is raised. The checks are turned
off for simple pattern variables (not involving ~or), though, and that's
what I'm concerned about.
Ryan
_________________________________________________
For list-related administrative tasks:
http://lists.racket-lang.org/listinfo/dev