diff options
author | ydah <[email protected]> | 2024-11-03 00:52:14 +0900 |
---|---|---|
committer | Yudai Takada <[email protected]> | 2025-01-04 20:27:40 +0900 |
commit | c936699431477a565b9e4036bc3b1fc186ac9918 (patch) | |
tree | c346ec8a89382c85b3ec6127be58ea329173f325 | |
parent | 24653430cde5f7abb895d1a009ebf4d8cfc39519 (diff) |
Implement FLIP3 NODE locations
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/11986
-rw-r--r-- | ast.c | 4 | ||||
-rw-r--r-- | test/ruby/test_ast.rb | 8 |
2 files changed, 12 insertions, 0 deletions
@@ -824,6 +824,10 @@ node_locations(VALUE ast_value, const NODE *node) return rb_ary_new_from_args(2, location_new(nd_code_loc(node)), location_new(&RNODE_FLIP2(node)->operator_loc)); + case NODE_FLIP3: + return rb_ary_new_from_args(2, + location_new(nd_code_loc(node)), + location_new(&RNODE_FLIP3(node)->operator_loc)); case NODE_LAMBDA: return rb_ary_new_from_args(4, location_new(nd_code_loc(node)), diff --git a/test/ruby/test_ast.rb b/test/ruby/test_ast.rb index cb48efb75a..898c4fcc3d 100644 --- a/test/ruby/test_ast.rb +++ b/test/ruby/test_ast.rb @@ -1420,6 +1420,14 @@ dummy assert_locations(node.children[-1].children[0].locations, [[1, 3, 1, 7], [1, 4, 1, 6]]) end + def test_flip3_locations + node = ast_parse("if 'a'...('z'); foo; end") + assert_locations(node.children[-1].children[0].locations, [[1, 3, 1, 14], [1, 6, 1, 9]]) + + node = ast_parse('if 1...5; foo; end') + assert_locations(node.children[-1].children[0].locations, [[1, 3, 1, 8], [1, 4, 1, 7]]) + end + def test_lambda_locations node = ast_parse("-> (a, b) { foo }") assert_locations(node.children[-1].locations, [[1, 0, 1, 17], [1, 0, 1, 2], [1, 10, 1, 11], [1, 16, 1, 17]]) |