parse.y: Fix a location of NODE_BLOCK_PASS

* parse.y (arg_append_gen): Update the last location of
  NODE_BLOCK_PASS when NODE is appended to nd_head.

  e.g. The locations of the NODE_BLOCK_PASS is fixed:

  ```
  o[1, &bl] = :c
  ```

  * Before

  ```
  NODE_BLOCK_PASS (line: 1, first_lineno: 1, first_column: 2, last_lineno: 1, last_column: 8)
  ```

  * After

  ```
  NODE_BLOCK_PASS (line: 1, first_lineno: 1, first_column: 2, last_lineno: 1, last_column: 14)
  ```

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@61011 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
yui-knk 2017-12-04 08:20:07 +00:00
parent 81d8c29a21
commit 4788522fa6

View File

@ -10058,6 +10058,7 @@ arg_append_gen(struct parser_params *parser, NODE *node1, NODE *node2, const YYL
return list_append(node1, node2, location);
case NODE_BLOCK_PASS:
node1->nd_head = arg_append(node1->nd_head, node2, location);
node1->nd_loc.last_loc = node1->nd_head->nd_loc.last_loc;
return node1;
case NODE_ARGSPUSH:
node1->nd_body = list_append(new_list(node1->nd_body, &node1->nd_body->nd_loc), node2, location);