Skip to content

Commit fcfd6b9

Browse files
authored
Merge pull request #20 from ruby/fix_block_empty_args
Fix empty block args bug `tap{||}`
2 parents fbf214a + 28eaf79 commit fcfd6b9

2 files changed

Lines changed: 4 additions & 1 deletion

File tree

lib/repl_type_completor/type_analyzer.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,9 @@ def evaluate_call_node(node, scope)
269269
when Prism::NumberedParametersNode
270270
assign_numbered_parameters node.block.parameters.maximum, block_scope, block_args, {}
271271
when Prism::BlockParametersNode
272-
assign_parameters node.block.parameters.parameters, block_scope, block_args, {}
272+
if node.block.parameters.parameters
273+
assign_parameters node.block.parameters.parameters, block_scope, block_args, {}
274+
end
273275
end
274276
result = node.block.body ? evaluate(node.block.body, block_scope) : Types::NIL
275277
block_scope.merge_jumps

test/repl_type_completor/test_type_analyze.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -701,6 +701,7 @@ def test_call_parameter
701701
end
702702

703703
def test_block_args
704+
assert_call('[1,2,3].tap{|| 1.', include: Integer)
704705
assert_call('[1,2,3].tap{|a| a.', include: Array)
705706
assert_call('[1,2,3].tap{|a,| a.', include: Integer)
706707
assert_call('[1,2,3].tap{|a,b| a.', include: Integer)

0 commit comments

Comments
 (0)