
Issue #19261 has been updated by fabiormoura (Fabio Moura Maia). File data-members-remove-method.patch added I've attached a patch with the changes to remove the aforementioned method. Also, I run the test suite in `test_data.rb` to validate my changes but there was one test failure that I'm unable to explain. However, the test failure looks to be unrelated: ``` % bin/ruby ../ruby/test/ruby/test_data.rb Ignoring debug-1.7.1 because its extensions are not built. Try: gem pristine debug --version 1.7.1 Ignoring rbs-2.8.3 because its extensions are not built. Try: gem pristine rbs --version 2.8.3 Loaded suite ../ruby/test/ruby/test_data Started .E ============================================================================================================================================================================================================================================================== Error: test_define_edge_cases(TestData): NoMethodError: undefined method `<=' for /duplicate member/:Regexp ../ruby/test/ruby/test_data.rb:44:in `test_define_edge_cases' 41: assert_same(x, o.b!) 42: 43: assert_raise(ArgumentError) { Data.define(:x=) } => 44: assert_raise(ArgumentError, /duplicate member/) { Data.define(:x, :x) } 45: end 46: 47: def test_define_with_block ============================================================================================================================================================================================================================================================== ........... ``` I've not been able to reproduce the error with this simple ad-hoc script: ``` % bin/ruby -e "Data.define(:x, :x)" -e:1:in `define': duplicate member: x (ArgumentError) Data.define(:x, :x) ^^^^^^ from -e:1:in `<main>' % bin/ruby -e "Data.define(:x, :x)" -e:1:in `define': duplicate member: x (ArgumentError) Data.define(:x, :x) ``` ---------------------------------------- Feature #19261: `Data#members` is not important https://bugs.ruby-lang.org/issues/19261#change-101144 * Author: ko1 (Koichi Sasada) * Status: Open * Priority: Normal ---------------------------------------- `Data#members` is defined but it is calculated by `self.class.members` (in other words, `#members` is a shorthand for `self.class.members`). So it is better to remove this method. ```ruby P = Data.define(:x, :y) p P.new(1, 2).members #=> [:x, :y] Group = Data.define(:name, :members) gs = Group.new('SasadaFamily', %w(ko1 yuki)) p gs.members #=> ["ko1", "yuki"] ``` ---Files-------------------------------- data-members-remove-method.patch (1.87 KB) -- https://bugs.ruby-lang.org/