Skip to content

Commit 5524524

Browse files
authored
Merge pull request #22 from ruby/remove_aset_with_block_support
Remove supporting `a[&b]=c` `a[**b]=c` because it is removed in ruby 3.4
2 parents 7b3cb0e + bc9ad52 commit 5524524

2 files changed

Lines changed: 1 addition & 9 deletions

File tree

lib/repl_type_completor/type_analyzer.rb

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -824,7 +824,7 @@ def evaluate_missing_node(_node, _scope) = Types::NIL
824824
def evaluate_call_node_arguments(call_node, scope)
825825
# call_node.arguments is Prism::ArgumentsNode
826826
arguments = call_node.arguments&.arguments&.dup || []
827-
block_arg = call_node.block.expression if call_node.block.is_a?(Prism::BlockArgumentNode)
827+
block_arg = call_node.block.expression if call_node.respond_to?(:block) && call_node.block.is_a?(Prism::BlockArgumentNode)
828828
kwargs = arguments.pop.elements if arguments.last.is_a?(Prism::KeywordHashNode)
829829
args_types = arguments.map do |arg|
830830
case arg
@@ -1100,7 +1100,6 @@ def evaluate_multi_write_receiver(node, scope, evaluated_receivers)
11001100
end
11011101
end
11021102
end
1103-
evaluate node.block.expression, scope if node.block&.expression
11041103
receiver
11051104
when Prism::SplatNode
11061105
evaluate_multi_write_receiver node.expression, scope, evaluated_receivers if node.expression

test/repl_type_completor/test_type_analyze.rb

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -337,12 +337,8 @@ def test_massign
337337
assert_call('a, ((b=1).c, d) = 1; b.', include: Integer)
338338
assert_call('a, b[c=1] = 1; c.', include: Integer)
339339
assert_call('a, b[*(c=1)] = 1; c.', include: Integer)
340-
assert_call('a, b[**(c=1)] = 1; c.', include: Integer)
341-
assert_call('a, b[&(c=1)] = 1; c.', include: Integer)
342340
assert_call('a, b[] = 1; a.', include: Integer)
343341
assert_call('def f(*); a, b[*] = 1; a.', include: Integer)
344-
assert_call('def f(&); a, b[&] = 1; a.', include: Integer)
345-
assert_call('def f(**); a, b[**] = 1; a.', include: Integer)
346342
# incomplete massign
347343
assert_analyze_type('a,b', :lvar_or_method, 'b')
348344
assert_call('(a=1).b, a.a', include: Integer)
@@ -518,9 +514,6 @@ def test_rarely_used_syntax
518514
assert_call('END{1.', include: Integer)
519515
# MatchWrite
520516
assert_call('a=1; /(?<a>)/=~b; a.', include: [String, NilClass], exclude: Integer)
521-
# OperatorWrite with block `a[&b]+=c`
522-
assert_call('a=[1]; (a[0,&:to_a]+=1.0).', include: Float)
523-
assert_call('a=[1]; (a[0,&b]+=1.0).', include: Float)
524517
end
525518

526519
def test_hash

0 commit comments

Comments
 (0)