diff --git a/lib/rbs/resolver/constant_resolver.rb b/lib/rbs/resolver/constant_resolver.rb index 7bd0f12482..7185cd042f 100644 --- a/lib/rbs/resolver/constant_resolver.rb +++ b/lib/rbs/resolver/constant_resolver.rb @@ -129,8 +129,8 @@ def load_context_constants(context) constants_from_ancestors(BuiltinNames::Object.name, constants: consts) end - constants_from_context(context, constants: consts) or return constants_itself(context, constants: consts) + constants_from_context(context, constants: consts) or return context_constants_cache[context] = consts end diff --git a/test/rbs/resolver/constant_resolver_test.rb b/test/rbs/resolver/constant_resolver_test.rb index 05c7c6cb33..0ca29f92ad 100644 --- a/test/rbs/resolver/constant_resolver_test.rb +++ b/test/rbs/resolver/constant_resolver_test.rb @@ -121,6 +121,29 @@ class Bar end end + def test_reference_constant_context_prefers_nested_constant_over_scope_name + SignatureManager.new do |manager| + manager.files[Pathname("foo.rbs")] = <