diff --git a/lib/katakata_irb/type_simulator.rb b/lib/katakata_irb/type_simulator.rb index aadaa9e..3e1db6b 100644 --- a/lib/katakata_irb/type_simulator.rb +++ b/lib/katakata_irb/type_simulator.rb @@ -454,6 +454,7 @@ def evaluate_multi_write_node(node, scope) end ) evaluate_multi_write node, value, scope, evaluated_receivers + value end def evaluate_if_node(node, scope) = evaluate_if_unless(node, scope) diff --git a/test/test_type_analyze.rb b/test/test_type_analyze.rb index a7341db..241e06a 100644 --- a/test/test_type_analyze.rb +++ b/test/test_type_analyze.rb @@ -137,6 +137,7 @@ def test_lvar_singleton_method end def test_local_variable_assign + assert_call('(a = 1).', include: Integer) assert_call('a = 1; a = ""; a.', include: String, exclude: Integer) assert_call('1 => a; a.', include: Integer) end @@ -293,6 +294,7 @@ def test_ivar_no_scope end def test_massign + assert_call('(a,b,c=1).', include: Integer) assert_call('a,=[1,2]; a.', include: Integer, exclude: Array) assert_call('a,b=[1,2]; a.', include: Integer, exclude: Array) assert_call('a,b=[1,2]; b.', include: Integer, exclude: Array)