lib/rbs/constant_table.rb in rbs-0.12.2 vs lib/rbs/constant_table.rb in rbs-0.13.0

- old
+ new

@@ -45,25 +45,29 @@ def resolve_constant_reference(name, context:) raise "Context cannot be empty: Specify `[Namespace.root]`" if context.empty? head, *tail = split_name(name) + raise unless head + head_constant = case when name.absolute? name_to_constant(TypeName.new(name: head, namespace: Namespace.root)) when context == [Namespace.root] name_to_constant(TypeName.new(name: head, namespace: Namespace.root)) else resolve_constant_reference_context(head, context: context) || resolve_constant_reference_inherit(head, scopes: constant_scopes(context.first.to_type_name)) end - if head_constant - tail.inject(head_constant) do |constant, name| - resolve_constant_reference_inherit name, - scopes: constant_scopes(constant.name), - no_object: constant.name != BuiltinNames::Object.name + tail.inject(head_constant) do |constant, name| + if constant + resolve_constant_reference_inherit( + name, + scopes: constant_scopes(constant.name), + no_object: constant.name != BuiltinNames::Object.name + ) end end end def resolve_constant_reference_context(name, context:) @@ -148,12 +152,9 @@ scopes.unshift namespace when Environment::ModuleEntry constant_scopes0 BuiltinNames::Module.name, scopes: scopes constant_scopes_module name, scopes: scopes - - else - raise "Unexpected declaration: #{name} (#{entry.class})" end scopes end end