зеркало из https://github.com/github/ruby.git
Extract repeating NODE references as a local variable
This commit is contained in:
Родитель
37ed86fd3c
Коммит
a4406bc89a
12
parse.y
12
parse.y
|
@ -6850,11 +6850,13 @@ assocs : assoc
|
|||
assocs = tail;
|
||||
}
|
||||
else if (tail) {
|
||||
if (RNODE_LIST(assocs)->nd_head &&
|
||||
!RNODE_LIST(tail)->nd_head && nd_type_p(RNODE_LIST(tail)->nd_next, NODE_LIST) &&
|
||||
nd_type_p(RNODE_LIST(RNODE_LIST(tail)->nd_next)->nd_head, NODE_HASH)) {
|
||||
/* DSTAR */
|
||||
tail = RNODE_HASH(RNODE_LIST(RNODE_LIST(tail)->nd_next)->nd_head)->nd_head;
|
||||
if (RNODE_LIST(assocs)->nd_head) {
|
||||
NODE *n = RNODE_LIST(tail)->nd_next;
|
||||
if (!RNODE_LIST(tail)->nd_head && nd_type_p(n, NODE_LIST) &&
|
||||
nd_type_p((n = RNODE_LIST(n)->nd_head), NODE_HASH)) {
|
||||
/* DSTAR */
|
||||
tail = RNODE_HASH(n)->nd_head;
|
||||
}
|
||||
}
|
||||
assocs = list_concat(assocs, tail);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче