From: "jeremyevans0 (Jeremy Evans) via ruby-core" Date: 2023-08-30T20:26:46+00:00 Subject: [ruby-core:114598] [Ruby master Bug#18878] parse.y: Foo::Bar {} is inconsistently rejected Issue #18878 has been updated by jeremyevans0 (Jeremy Evans). It looks like this will be fixed by YARP: ``` $ ruby -r yarp -e "pp YARP.parse('Foo::Bar {}')" #, @value= ProgramNode(0...11)( [], StatementsNode(0...11)( [CallNode(0...11)(ConstantReadNode(0...3)(), (3...5), (5...8), nil, nil, nil, BlockNode(9...11)([], nil, nil, (9...10), (10...11)), 0, "Bar")] ) ), @warnings=[]> ``` ---------------------------------------- Bug #18878: parse.y: Foo::Bar {} is inconsistently rejected https://bugs.ruby-lang.org/issues/18878#change-104415 * Author: qnighy (Masaki Hara) * Status: Open * Priority: Normal * ruby -v: ruby 3.1.2p20 (2022-04-12 revision 4491bb740a) [x86_64-linux] * Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN ---------------------------------------- The following source doesn't parse: ```ruby Foo::Bar {} ``` despite the following: ```ruby bar # local variable or method call Bar # constant bar() # method call Bar() # method call bar {} # method call Bar {} # method call bar() {} # method call Bar() {} # method call Foo::bar # method call Foo::Bar # constant Foo::bar() # method call Foo::Bar() # method call Foo::bar {} # method call # Foo::Bar {} # SyntaxError Foo::bar() {} # method call Foo::Bar() {} # method call ``` Especially considering `Bar {}`, this looks like a missing implementation rather than an intentional behavior. -- https://bugs.ruby-lang.org/ ______________________________________________ ruby-core mailing list -- ruby-core@ml.ruby-lang.org To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/