Skip to content

Commit a07ec4d

Browse files
committed
Refactor Struct#deconstruct_keys and Data#deconstruct_keys to rely on Array#[] to validate an index argument
1 parent 75b3bcb commit a07ec4d

File tree

2 files changed

+2
-12
lines changed

2 files changed

+2
-12
lines changed

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

+1-2
Original file line numberDiff line numberDiff line change
@@ -174,8 +174,7 @@ def deconstruct_keys(keys)
174174
when String
175175
symbolized_key = requested_key.to_sym
176176
else
177-
index = Truffle::Type.rb_convert_type(requested_key, Integer, :to_int)
178-
symbolized_key = members[index]
177+
symbolized_key = members[requested_key]
179178
end
180179
181180
if symbolized_key && members_hash.include?(symbolized_key)

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

+1-10
Original file line numberDiff line numberDiff line change
@@ -263,15 +263,6 @@ def []=(var, obj)
263263
_attrs[var]
264264
end
265265

266-
private def check_index_var(var)
267-
var = Truffle::Type.rb_convert_type(var, Integer, :to_int)
268-
a_len = _attrs.length
269-
270-
if var < a_len && var >= -a_len
271-
_attrs[var]
272-
end
273-
end
274-
275266
def dig(key, *more)
276267
result = read_or_nil(key)
277268
if Primitive.nil?(result) || more.empty?
@@ -353,7 +344,7 @@ def deconstruct_keys(keys)
353344
when String
354345
symbolized_key = requested_key.to_sym
355346
else
356-
symbolized_key = check_index_var(requested_key)
347+
symbolized_key = _attrs[requested_key]
357348
end
358349

359350
if symbolized_key && _attrs.include?(symbolized_key)

0 commit comments

Comments
 (0)