
Issue #21010 has been updated by k0kubun (Takashi Kokubun). Backport changed from 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED, 3.4: REQUIRED to 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED, 3.4: DONE ruby_3_4 commit:82f7cb794109794f6ffa95ffb3be8e5149dd74bd merged revision(s) commit:ad96c5a72908042489357b73dc936c4bc38d919b, commit:ca81142eff98cccb03ff523322aefe4e7346fd0e. ---------------------------------------- Bug #21010: Endless method definition of `[]=` is SyntaxError in parse.y but allowed in Prism https://bugs.ruby-lang.org/issues/21010#change-111915 * Author: tompng (tomoya ishida) * Status: Closed * Assignee: prism * ruby -v: ruby 3.5.0dev (2025-01-06T01:50:53Z master c8e3d745fa) +PRISM [x86_64-linux] * Backport: 3.1: DONTNEED, 3.2: DONTNEED, 3.3: DONTNEED, 3.4: DONE ---------------------------------------- These codes is SyntaxError in parse.y but accepted in Prism ~~~ruby def []=(k,v)=1 def obj.[]=(k,v)=1 ~~~ These are both SyntaxError in parse.y and Prism by design. ~~~ruby # invalid method name; a setter method cannot be defined in an endless method definition def f=(k,v)=1 def obj.f=(k,v)=1 ~~~ I think endless method definition of `[]=` should be also rejected. -- https://bugs.ruby-lang.org/