Hi,

In message "Re: [ruby-core:24476] [Bug #1801] parse error on variable/method collision"
    on Tue, 21 Jul 2009 23:13:15 +0900, caleb clausen <redmine / ruby-lang.org> writes:

|Consider this ruby program:
|
|def a; 11; end
|def e; 44; end
|def ep(x); 99 end
|ep=556
|p(ep (e) /a)
|
|The correct output is 9. Actual output is 99.
|
|The last line should be parsed like this: p(ep((e)/a))
|However, it appears to get parsed like this: p((ep(e))/a)
|
|In other words, the /a should be inside the arg list to ep(), however, it actually gets put outside.

It's intentional.  We cannot always fulfill everyone's expectation
from various background.  When you claim "should" in your bug report,
you have to include your rationale more than mere expectation in the
report.

|Rubinius has an even more severe version of the problem. It outputs 50, which indicates that it not only misparses, it also evaluates the expression 'ep (a)' as a local variable, completely ignoring the arg list!

It seems to be a bug in Rubinius.  You should report to its maintainers.

							matz.