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
13 changes: 11 additions & 2 deletions lib/typeprof/core/env/method_entity.rb
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ class MethodEntity
def initialize
@builtin = nil
@decls = Set[]
@overloading_decls = Set[]
@defs = Set[]
@aliases = {}
@method_call_boxes = Set[]
Expand All @@ -12,11 +13,19 @@ def initialize
attr_accessor :builtin

def add_decl(decl)
@decls << decl
if decl.overloading
@overloading_decls << decl
else
@decls << decl
end
end

def remove_decl(decl)
@decls.delete(decl) || raise
if decl.overloading
@overloading_decls.delete(decl) || raise
else
@decls.delete(decl) || raise
end
end

def add_def(mdef)
Expand Down
18 changes: 18 additions & 0 deletions scenario/rbs/overloading.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
## update: test.rbs
class Foo
def check: () -> Integer
end

class Bar < Foo
def check: ...
end

## update: test.rb
def check
Bar.new.check
end

## assert
class Object
def check: -> Integer
end