@@ -45,16 +45,17 @@ def handle_active_record_where_completions(node)
4545 return if resolved_class . nil?
4646
4747 arguments = T . must ( @node_context . call_node ) . arguments &.arguments
48- existing_args = T . let ( { } , T ::Hash [ String , T :: Boolean ] )
48+ indexed_call_node_args = T . let ( { } , T ::Hash [ String , Prism :: Node ] )
4949
5050 if arguments &.is_a? ( Array )
51- existing_args = get_call_node_arguments ( arguments : arguments )
52- return if existing_args . values . any? { |v | v == node }
51+ indexed_call_node_args = index_call_node_args ( arguments : arguments )
52+ binding . irb
53+ return if indexed_call_node_args . values . any? { |v | v == node }
5354 end
5455
5556 resolved_class [ :columns ] . each do |column |
5657 next unless column [ 0 ] . start_with? ( node . name . to_s )
57- next if existing_args . key? ( column [ 0 ] )
58+ next if indexed_call_node_args . key? ( column [ 0 ] )
5859
5960 @response_builder << Interface ::CompletionItem . new (
6061 label : column [ 0 ] ,
@@ -68,9 +69,9 @@ def handle_active_record_where_completions(node)
6869 end
6970 end
7071
71- sig { params ( arguments : T ::Array [ Prism ::Node ] ) . returns ( T ::Hash [ String , T :: Boolean ] ) }
72- def get_call_node_arguments ( arguments :)
73- existing_args = { }
72+ sig { params ( arguments : T ::Array [ Prism ::Node ] ) . returns ( T ::Hash [ String , Prism :: Node ] ) }
73+ def index_call_node_args ( arguments :)
74+ indexed_call_node_args = { }
7475 arguments . each do |argument |
7576 next unless argument . is_a? ( Prism ::KeywordHashNode )
7677
@@ -79,11 +80,11 @@ def get_call_node_arguments(arguments:)
7980
8081 key = e . key
8182 if key . is_a? ( Prism ::SymbolNode )
82- existing_args [ key . value ] = e . value
83+ indexed_call_node_args [ key . value ] = e . value
8384 end
8485 end
8586 end
86- existing_args
87+ indexed_call_node_args
8788 end
8889 end
8990 end
0 commit comments