diff --git a/lib/typeprof/core/ast/sig_type.rb b/lib/typeprof/core/ast/sig_type.rb index cb7f358b6..20c0d4a0f 100644 --- a/lib/typeprof/core/ast/sig_type.rb +++ b/lib/typeprof/core/ast/sig_type.rb @@ -54,7 +54,7 @@ def attrs = { type_params:, block_required: } class SigTyNode < Node def covariant_vertex(genv, changes, subst) - vtx = changes.new_vertex(genv, self, subst) + vtx = changes.new_vertex(genv, self) covariant_vertex0(genv, changes, vtx, subst) vtx end diff --git a/lib/typeprof/core/graph/site.rb b/lib/typeprof/core/graph/site.rb index 31ea7f0d7..72ebfd2cb 100644 --- a/lib/typeprof/core/graph/site.rb +++ b/lib/typeprof/core/graph/site.rb @@ -19,9 +19,10 @@ def initialize(target) @new_depended_superclasses = [] end - attr_reader :sites, :diagnostics, :covariant_types + attr_reader :sites, :diagnostics - def new_vertex(genv, sig_type_node, subst) + def new_vertex(genv, sig_type_node) + # This is used to avoid duplicated vertex generation for the same sig node @covariant_types[sig_type_node] ||= Vertex.new("rbs_type", sig_type_node) end diff --git a/lib/typeprof/core/graph/vertex.rb b/lib/typeprof/core/graph/vertex.rb index 9f6ae1ca8..c86ef5be5 100644 --- a/lib/typeprof/core/graph/vertex.rb +++ b/lib/typeprof/core/graph/vertex.rb @@ -99,8 +99,8 @@ def on_type_added(genv, src_var, added_types) def on_type_removed(genv, src_var, removed_types) end - def new_vertex(genv, show_name, node) - nvtx = Vertex.new(show_name, node) + def new_vertex(genv, show_name, origin) + nvtx = Vertex.new(show_name, origin) add_edge(genv, nvtx) nvtx end @@ -191,8 +191,8 @@ def on_type_removed(genv, src_var, removed_types) end end - def new_vertex(genv, show_name, node) - nvtx = Vertex.new(show_name, node) + def new_vertex(genv, show_name, origin) + nvtx = Vertex.new(show_name, origin) add_edge(genv, nvtx) nvtx end