From: marcandre-ruby-core@... Date: 2020-11-18T10:32:21+00:00 Subject: [ruby-core:100929] [Ruby master Bug#17332] No error when using endless method definitions with `self.` setters Issue #17332 has been updated by marcandre (Marc-Andre Lafortune). Status changed from Open to Closed Seems to have been fixed since preview1: ``` [05:29][~]$ ruby -v -e 'def self.foo=() = 1' ruby 3.0.0dev (2020-11-07T21:47:45Z master 2f12af42f7) [x86_64-darwin18] -e:1: setter method cannot be defined in an endless method definition def self.foo=() = 1 [05:29][~]$ ruby -v -e 'obj = Object.new; def obj.foo=() = 1' ruby 3.0.0dev (2020-11-07T21:47:45Z master 2f12af42f7) [x86_64-darwin18] -e:1: setter method cannot be defined in an endless method definition obj = Object.new; def obj.foo=() = 1 ``` ---------------------------------------- Bug #17332: No error when using endless method definitions with `self.` setters https://bugs.ruby-lang.org/issues/17332#change-88582 * Author: hjwylde (Henry Wylde) * Status: Closed * Priority: Normal * ruby -v: ruby 3.0.0preview1 (2020-09-25 master 0096d2b895) [x86_64-linux] * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- With ruby 3.0.0 preview1, endless method definitions can be used for setter methods with explicit receiver: ```ruby def self.foo=() = 1 # => :foo= ``` ```ruby obj = Object.new def obj.foo=() = 1 # => :foo= ``` From my understanding, setter methods are not intended to be allowed with endless method definitions. Expected result: The same error to occur for all setter methods ("setter method cannot be defined in an endless method definition"). E.g., ```ruby def foo=() = 1 # !> SyntaxError ((irb):4: setter method cannot be defined in an endless method definition) ``` -- https://bugs.ruby-lang.org/ Unsubscribe: