Skip to content

Commit c7312f5

Browse files
committed
Fix formatting and add Changelog entry
1 parent d9ad36e commit c7312f5

File tree

5 files changed

+10
-14
lines changed

5 files changed

+10
-14
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,7 @@ Compatibility:
8383
* Modify `Struct#{inspect,to_s}` to match MRI when the struct is nested inside of an anonymous class or module (@st0012, @nirvdrum).
8484
* `Fiber.current` and `Fiber#transfer` are available without `require 'fiber'` like in CRuby 3.1 (#2733, @eregon).
8585
* Add `freeze` keyword argument to `Marshal.load` (#2733, @andrykonchin).
86+
* Add `StructClass#keyword_init?` method (#2377, @moste00).
8687

8788
Performance:
8889

spec/ruby/core/struct/keyword_init_spec.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,21 @@
1919
end
2020

2121
it "returns nil for a struct that does specify keyword_init to be nil" do
22-
struct = Struct.new(:arg,keyword_init: nil)
22+
struct = Struct.new(:arg, keyword_init: nil)
2323
struct.keyword_init?.should be_nil
2424
end
2525

26-
it "returns true or false for truthy values in general, not just true" do
27-
struct = Struct.new(:arg,keyword_init: 1)
26+
it "returns true for any truthy value, not just for true" do
27+
struct = Struct.new(:arg, keyword_init: 1)
2828
struct.keyword_init?.should be_true
2929

30-
struct = Struct.new(:arg,keyword_init: "")
30+
struct = Struct.new(:arg, keyword_init: "")
3131
struct.keyword_init?.should be_true
3232

33-
struct = Struct.new(:arg,keyword_init: [])
33+
struct = Struct.new(:arg, keyword_init: [])
3434
struct.keyword_init?.should be_true
3535

36-
struct = Struct.new(:arg,keyword_init: {})
36+
struct = Struct.new(:arg, keyword_init: {})
3737
struct.keyword_init?.should be_true
3838
end
3939
end

src/main/ruby/truffleruby/core/struct.rb

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,10 @@ def self.inspect
9494
const_set :KEYWORD_INIT, keyword_init
9595

9696
def self.keyword_init?
97-
kw_init = self.const_get(:KEYWORD_INIT)
98-
return nil if Primitive.nil?(kw_init)
99-
100-
Primitive.as_boolean(kw_init)
101-
end
102-
97+
return nil if Primitive.nil?(self::KEYWORD_INIT)
98+
Primitive.as_boolean(self::KEYWORD_INIT)
10399
end
100+
end
104101

105102
const_set klass_name, klass if klass_name
106103

test/mri/excludes/TestStruct/SubStruct.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,4 +5,3 @@
55
exclude :test_struct_new_with_empty_hash, "needs investigation"
66
exclude :test_parameters, "<[[:req, :_]]> expected but was"
77
exclude :test_keyword_args_warning, "<{:a=>1}> expected but was"
8-
exclude :test_struct_keyword_init_p, "NoMethodError: undefined method `keyword_init?' for #<Class:0x6bf8>(keyword_init: true)"

test/mri/excludes/TestStruct/TopStruct.rb

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,5 @@
33
exclude :test_nonascii, "needs investigation"
44
exclude :test_redefinition_warning, "needs investigation"
55
exclude :test_struct_new_with_empty_hash, "needs investigation"
6-
exclude :test_struct_keyword_init_p, "NoMethodError: undefined method `keyword_init?' for #<Class:0xc3f888>(keyword_init: true)"
76
exclude :test_parameters, "<[[:req, :_]]> expected but was"
87
exclude :test_keyword_args_warning, "expected: /warning: Passing only keyword arguments to Struct#initialize will behave differently from Ruby 3\\.2\\./"

0 commit comments

Comments
 (0)