Project

General

Profile

Actions

Backport #6403

closed

self という名前のメソッド定義で SyntaxError

Added by wanabe (_ wanabe) almost 12 years ago. Updated almost 12 years ago.

Status:
Closed
Assignee:
-
[ruby-dev:45626]

Description

http://toro.2ch.net/test/read.cgi/tech/1328648447/925-931
で指摘されていたのですが、self という名前のメソッドの定義で
メソッド内部先頭にシンボルがある場合 SyntaxError になります。
また、セミコロンか改行をはさむと正常にパースされます。

def self; :foo; end #<= NG
def self;; :foo; end #<= OK
def self() :foo; end #<= OK
def self(); :foo; end #<= OK
def hoge; :foo; end #<= OK
def class; :foo; end #<= OK

parse.y の f_arglist に関する規則の部分で、
'(' f_args rparen の時には lex_state を変更しているのに
f_args term の時には $$ = $1; しかしていないあたりが
怪しいように思うのですがどうでしょうか。

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0