# File rbs-1.4.0/lib/rbs/location.rb, line 163
def [](key)
case
when required_children.key?(_ = key)
range = required_children[_ = key]
Location.new(buffer: buffer, start_pos: range.begin, end_pos: range.end)
when optional_children.key?(_ = key)
range = required_children[_ = key] || optional_children[_ = key]
if range
Location.new(buffer: buffer, start_pos: range.begin, end_pos: range.end)
end
else
raise "Unknown key given: `#{key}`"
end
end
# File rbs-1.4.0/lib/rbs/location.rb, line 157
def initialize_copy(from)
required_children.merge!(from.required_children)
optional_children.merge!(from.optional_children)
self
end