Hello,

On Tue, 15 Apr 2025, Bill Wendling wrote:

> > [... the horrors ...]
>
> All of this horribleness is because of the insistence of allowing for
> primary expressions in the attributes, which I find to be a horrible
> idea.

I whole-heartedly agree with you :)  But in light of this insistence I 
guess we should strive for the least horrible approach.  Meaning: make 
everyone unhappy, but only a little :)

> Arguing that delayed parsing is "tolerable" in one instance but
> not in another is a bit specious,

At the limit you are correct, but in a practical implementation it's quite 
a difference between tacking an identifier-id somewhere in the attribute 
list, or storing a token-list and reparse it in the right mode at the end 
of the struct definition, especially when the latter concept doesn't exist 
as of then in a given parser.

> given that the expressions we allow are supposed to be "simple" (for 
> some definition of simple), it should only require doing that tolerable 
> parsing a couple more times. (As I've mentioned before, it would be so 
> much better to place the expression into a function.)

Yes, I think that's an elegant solution, really.  But it seems noone else 
was much fond of it :-/

> Even the compromise we've discussed here wouldn't fix all of our issues 
> (see the problem I pointed out with macro expansions).

Yes.  Though, macros will always be a source of problems.  A determined 
macro-afficiando can always construct weird examples involving macros, I 
wouldn't worry overly much about those.


Ciao,
Michael.

Reply via email to