Skip to content

Commit

Permalink
refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
mame committed May 1, 2024
1 parent b955ccc commit 00deabf
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 14 deletions.
6 changes: 2 additions & 4 deletions lib/typeprof/core/ast/base.rb
Original file line number Diff line number Diff line change
Expand Up @@ -150,15 +150,13 @@ def retrieve_at(pos, &blk)
end

def boxes(key)
boxes = []
@changes.boxes.each do |(k, *), box|
# TODO: make it recursive
box.changes.boxes.each do |(k, *), box|
boxes << box if k == key
yield box if k == key
end
boxes << box if k == key
yield box if k == key
end
boxes
end

def diagnostics(genv, &blk)
Expand Down
20 changes: 10 additions & 10 deletions lib/typeprof/core/service.rb
Original file line number Diff line number Diff line change
Expand Up @@ -152,14 +152,14 @@ def diagnostics(path, &blk)
def definitions(path, pos)
defs = []
@text_nodes[path].retrieve_at(pos) do |node|
node.boxes(:cread).each do |box|
node.boxes(:cread) do |box|
if box.const_read && box.const_read.cdef
box.const_read.cdef.defs.each do |cdef_node|
defs << [cdef_node.lenv.path, cdef_node.cname_code_range]
end
end
end
node.boxes(:mcall).each do |box|
node.boxes(:mcall) do |box|
boxes = []
box.changes.boxes.each do |key, box|
# ad-hocly handle Class#new calls
Expand Down Expand Up @@ -214,7 +214,7 @@ def references(path, pos)
case node
when AST::DefNode
if node.mid_code_range.include?(pos)
node.boxes(:mdef).each do |mdef|
node.boxes(:mdef) do |mdef|
me = @genv.resolve_method(mdef.cpath, mdef.singleton, mdef.mid)
if me
me.method_call_boxes.each do |box|
Expand All @@ -227,7 +227,7 @@ def references(path, pos)
# TODO: Callsite
when AST::ConstantReadNode
if node.cname_code_range.include?(pos)
node.boxes(:cread).each do |cread_box|
node.boxes(:cread) do |cread_box|
@genv.resolve_const(cread_box.const_read.cpath).read_boxes.each do |box|
node = box.node
refs << [node.lenv.path, node.code_range]
Expand All @@ -251,23 +251,23 @@ def rename(path, pos)
mdefs = []
cdefs = []
@text_nodes[path].retrieve_at(pos) do |node|
node.boxes(:mcall).each do |box|
node.boxes(:mcall) do |box|
box.resolve(genv, nil) do |me, _ty, _mid, _orig_ty|
next unless me
me.defs.each do |mdef|
mdefs << mdef
end
end
end
node.boxes(:cread).each do |box|
node.boxes(:cread) do |box|
if box.node.cname_code_range.include?(pos)
box.const_read.cdef.defs.each do |cdef|
cdefs << cdef
end
end
end
if node.is_a?(AST::DefNode) && node.mid_code_range.include?(pos)
node.boxes(:mdef).each do |mdef|
node.boxes(:mdef) do |mdef|
mdefs << mdef
end
end
Expand Down Expand Up @@ -303,7 +303,7 @@ def rename(path, pos)

def hover(path, pos)
@text_nodes[path].retrieve_at(pos) do |node|
node.boxes(:mcall).each do |box|
node.boxes(:mcall) do |box|
boxes = []
box.changes.boxes.each do |key, box|
# ad-hocly handle Class#new calls
Expand Down Expand Up @@ -348,7 +348,7 @@ def code_lens(path)
else
if event == :enter
next if node.is_a?(AST::DefNode) && node.rbs_method_type
node.boxes(:mdef).each do |mdef|
node.boxes(:mdef) do |mdef|
hint = mdef.show
if hint
yield mdef.node.code_range, hint
Expand Down Expand Up @@ -433,7 +433,7 @@ def dump_declarations(path)
end
else
if event == :enter
node.boxes(:mdef).each do |mdef|
node.boxes(:mdef) do |mdef|
out << " " * depth + "def #{ mdef.singleton ? "self." : "" }#{ mdef.mid }: " + mdef.show
end
end
Expand Down

0 comments on commit 00deabf

Please sign in to comment.