Skip to content

Commit e3031bc

Browse files
committed
Fix OperatorWriteNode#operator deprecation warning, use binary_operator instead
1 parent 4e27333 commit e3031bc

1 file changed

Lines changed: 9 additions & 4 deletions

File tree

lib/repl_type_completor/type_analyzer.rb

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,11 @@ def evaluate_and_or(node, scope, and_op:)
309309
end
310310
end
311311

312+
def operator_write_node_binop(node)
313+
# `operator` is deprecated in Prism 0.29.0
314+
node.respond_to?(:binary_operator) ? node.binary_operator : node.operator
315+
end
316+
312317
def evaluate_call_operator_write_node(node, scope) = evaluate_call_write(node, scope, :operator, node.write_name)
313318
def evaluate_call_and_write_node(node, scope) = evaluate_call_write(node, scope, :and, node.write_name)
314319
def evaluate_call_or_write_node(node, scope) = evaluate_call_write(node, scope, :or, node.write_name)
@@ -342,14 +347,14 @@ def evaluate_call_write(node, scope, operator, write_name)
342347
Types::UnionType[left, right]
343348
else
344349
right = evaluate node.value, scope
345-
method_call left, node.operator, [right], nil, nil, scope, name_match: false
350+
method_call left, operator_write_node_binop(node), [right], nil, nil, scope, name_match: false
346351
end
347352
end
348353

349354
def evaluate_variable_operator_write(node, scope)
350355
left = scope[node.name.to_s] || Types::OBJECT
351356
right = evaluate node.value, scope
352-
scope[node.name.to_s] = method_call left, node.operator, [right], nil, nil, scope, name_match: false
357+
scope[node.name.to_s] = method_call left, operator_write_node_binop(node), [right], nil, nil, scope, name_match: false
353358
end
354359
alias evaluate_global_variable_operator_write_node evaluate_variable_operator_write
355360
alias evaluate_local_variable_operator_write_node evaluate_variable_operator_write
@@ -378,7 +383,7 @@ def evaluate_variable_or_write(node, scope)
378383
def evaluate_constant_operator_write_node(node, scope)
379384
left = scope[node.name.to_s] || Types::OBJECT
380385
right = evaluate node.value, scope
381-
scope[node.name.to_s] = method_call left, node.operator, [right], nil, nil, scope, name_match: false
386+
scope[node.name.to_s] = method_call left, operator_write_node_binop(node), [right], nil, nil, scope, name_match: false
382387
end
383388

384389
def evaluate_constant_and_write_node(node, scope)
@@ -395,7 +400,7 @@ def evaluate_constant_or_write_node(node, scope)
395400
def evaluate_constant_path_operator_write_node(node, scope)
396401
left, receiver, _parent_module, name = evaluate_constant_node_info node.target, scope
397402
right = evaluate node.value, scope
398-
value = method_call left, node.operator, [right], nil, nil, scope, name_match: false
403+
value = method_call left, operator_write_node_binop(node), [right], nil, nil, scope, name_match: false
399404
const_path_write receiver, name, value, scope
400405
value
401406
end

0 commit comments

Comments
 (0)