Project

General

Profile

Feature #14397

public, protected and private should return their arguments instead of self

Added by usa (Usaku NAKAMURA) 3 months ago. Updated 3 months ago.

Status:
Assigned
Priority:
Normal
Target version:
[ruby-core:85079]

Description

Matsuda-san suggested me that public, protected and private should return their arguments instead of self,
to write such code:`

require "finalist"
# see https://github.com/joker1007/finalist

class Foo
  extend Finalist

  final private def foo
  end
end

I believe that it's reasonable request, and also believe that there is no product code which uses the return values of public, protected and private.
Matz, how do you think about this change?
The patch is attached.

return_values_of_visibility_methods.diff (7.47 KB) return_values_of_visibility_methods.diff usa (Usaku NAKAMURA), 01/24/2018 09:25 PM

Related issues

Related to CommonRuby - Feature #11541: Let attr_accessor, _reader & _writer return symbols of the defined methodsOpen
Has duplicate Ruby trunk - Feature #14396: public, protected and private should return their arguments instead of selfRejected

History

#1 Updated by usa (Usaku NAKAMURA) 3 months ago

  • Has duplicate Feature #14396: public, protected and private should return their arguments instead of self added

#2 Updated by Eregon (Benoit Daloze) 3 months ago

  • Related to Feature #11541: Let attr_accessor, _reader & _writer return symbols of the defined methods added

#3 [ruby-core:85113] Updated by Eregon (Benoit Daloze) 3 months ago

Would it be simpler for the semantics to always return an Array of symbols?
Otherwise final (and other potential uses) has to handle both a single Symbol and an Array of Symbol.

One concern is the extra allocations for the common case of a single argument given to private.

Also available in: Atom PDF