Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions lib/typeprof/core/graph/box.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1214,6 +1214,8 @@ def resolve_subclasses(genv, changes)
base_ty = ty.base_type(genv)
singleton = base_ty.is_a?(Type::Singleton)
mod = base_ty.mod
# Every class descends from Object, so this would only find unrelated methods
next if mod.cpath.empty?
mod.each_descendant do |desc_mod|
next if mod == desc_mod
me = desc_mod.get_method(singleton, @mid)
Expand Down
27 changes: 27 additions & 0 deletions scenario/method/subclass-methods-toplevel.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## update
class Object
def foo(n) = n
def self.bar(n) = n

bar(1)
end

foo(1)

class C
def foo(n)
end

def self.bar(n)
end
end

## assert
class Object < BasicObject
def foo: (Integer) -> Integer
def self.bar: (Integer) -> Integer
end
class C
def foo: (untyped) -> nil
def self.bar: (untyped) -> nil
end
Loading