jruby / jruby-parser

JRuby's parser customized for IDE usage
44 stars 21 forks source link

Ruby 2.0 parser fails to parse lambda arrow syntax with space #36

Open codelion opened 9 years ago

codelion commented 9 years ago

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 commented 9 years ago

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

JackWCollins commented 9 years ago

I am running into this issue too.

Sinjo commented 8 years ago

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.