jruby-parser icon indicating copy to clipboard operation
jruby-parser copied to clipboard

Ruby 2.0 parser fails to parse lambda arrow syntax with space

Open codelion opened this issue 10 years ago • 3 comments
trafficstars

It seems like there is an inconsistency introduced in ruby 2.0 regarding the use of lambda syntax. The issue is detailed here

In ruby 2.0 the following is valid (notice the space between -> and (message))

hello_world = -> (message) { puts message }

However in ruby 1.9 it gives an error.

The issue is that in jruby-parser this doesn't parse even with CompatVersion set to 2.0. And in the older versions it won't parse, so the files using this cannot be handled with the jruby-parser.

Removing the space between the arrow and the parentheses would allow jruby-parser to parse these files. But there are uses of this syntax (with spaces) in the wild already, e.g. in slop gem. So, there are many files using this syntax that cannot be handled with jruby-parser.

codelion avatar Apr 21 '15 10:04 codelion

Hi, just posting on this thread again to try and resurface this and other recent issues I posted about.

codelion avatar May 16 '15 16:05 codelion

I am running into this issue too.

JackWCollins avatar Jul 02 '15 21:07 JackWCollins

Ran across this issue by chance and remembered the problem. This was actually fixed in JRuby before the JRuby 9000 effort started. I suspect you could apply the patch to this bit of code and you'd be done.

Sinjo avatar Nov 05 '15 10:11 Sinjo