diff --git a/lib/solargraph/api_map.rb b/lib/solargraph/api_map.rb index 1aa222dac..bdc4b224d 100755 --- a/lib/solargraph/api_map.rb +++ b/lib/solargraph/api_map.rb @@ -311,6 +311,7 @@ def get_methods fqns, scope: :instance, visibility: [:public], deep: true result.concat inner_get_methods('Kernel', :instance, visibility, deep, skip) else result.concat inner_get_methods(fqns, scope, visibility, deep, skip) + result.concat get_methods('Kernel', scope: :instance, visibility: [:public], deep: true) if deep && fqns != 'Kernel' end resolved = resolve_method_aliases(result, visibility) cache.set_methods(fqns, scope, visibility, deep, resolved) diff --git a/spec/type_checker_spec.rb b/spec/type_checker_spec.rb index 68bb6b75d..19e4e083a 100644 --- a/spec/type_checker_spec.rb +++ b/spec/type_checker_spec.rb @@ -486,4 +486,15 @@ def bar bool )) expect(checker.strict_type_problems).to be_one end + + it 'resolves Kernel methods in instance scopes' do + checker = Solargraph::TypeChecker.load_string(%( + class Foo + def bar + raise 'oops' + end + end + )) + expect(checker.strict_type_problems).to be_empty + end end