Thom Boyer wrote:
Now, I think that

    $x.foo

is a method call, even if there's a postfix:<foo> declaration in scope. And that's a problem, because, no matter what precedence postfix:<foo> was given,

    1,2,3.foo

is still going to mean

    1, 2, (3.foo)

instead of the desired

    postfix:<foo>(1,2,3)


The way I wrote that, it sounds like I think postfix:<foo> isn't a method call, but of course it is.

What I really meant to say is that, in

    1,2,3.foo

the precedence of foo gets changed to the precedence of dot. I don't actually know that that is true. Is it?

And does dot always do that? If it does, then something odd happens. Consider infix:<*> and postfix:<!>, where infix:<*> binds tighter than postfix:<+>, and both bind more loosely than dot. Then

    1 * 2!      # means (1 * 2)!
    1 * 2.!     # means 1 * (2!)

Methinks one or more of my assumptions is erroneous, 'cuz that's just too ugly to live.
=thom

Reply via email to