mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-28 17:52:42 +01:00
Fix improper XHPAST parsing of namespace grammar like "use x as private;"
Summary: Depends on D21067. Ref T13492. Converting unit tests to be readable exposed this error in the grammar. Normally, "grammar_rule" rules emit a standalone Node. In this case, the bottom-level grammar rule is a collection of trivial rules and the callers configure the Node. Wrap the bottom-level rule in a configuration rule so the node is configured correctly and consistently, in exactly one place. Test Plan: Ran unit tests. Maniphest Tasks: T13492 Differential Revision: https://secure.phabricator.com/D21068
This commit is contained in:
parent
e03431def8
commit
a1ee2ab931
4 changed files with 1838 additions and 1831 deletions
|
@ -205,7 +205,7 @@ pass
|
|||
> " "
|
||||
> as
|
||||
> " "
|
||||
* "<INVALID TYPE \"0\">"
|
||||
* n_STRING
|
||||
> protected
|
||||
* n_EMPTY
|
||||
> " "
|
||||
|
|
|
@ -8,7 +8,7 @@ final class PhutilXHPASTBinary extends Phobject {
|
|||
* This is the version that would be obtained with an up-to-date XHPAST
|
||||
* build. The //actual// XHPAST build version may vary.
|
||||
*/
|
||||
const EXPECTED_VERSION = '7.1.5';
|
||||
const EXPECTED_VERSION = '7.1.6';
|
||||
|
||||
/**
|
||||
* The XHPAST build version.
|
||||
|
|
|
@ -1335,7 +1335,7 @@ trait_modifiers:
|
|||
}
|
||||
| member_modifier {
|
||||
$$ = NNEW(n_METHOD_MODIFIER_LIST);
|
||||
$$->appendChild(NTYPE($1, n_STRING));
|
||||
$$->appendChild($1);
|
||||
}
|
||||
;
|
||||
|
||||
|
@ -1370,14 +1370,20 @@ method_modifiers:
|
|||
non_empty_member_modifiers:
|
||||
member_modifier {
|
||||
$$ = NNEW(n_CLASS_MEMBER_MODIFIER_LIST);
|
||||
$$->appendChild(NTYPE($1, n_STRING));
|
||||
$$->appendChild($1);
|
||||
}
|
||||
| non_empty_member_modifiers member_modifier {
|
||||
$$ = $1->appendChild(NTYPE($2, n_STRING));
|
||||
$$ = $1->appendChild($2);
|
||||
}
|
||||
;
|
||||
|
||||
member_modifier:
|
||||
basic_member_modifier {
|
||||
$$ = NTYPE($1, n_STRING);
|
||||
}
|
||||
;
|
||||
|
||||
basic_member_modifier:
|
||||
T_PUBLIC
|
||||
| T_PROTECTED
|
||||
| T_PRIVATE
|
||||
|
|
File diff suppressed because it is too large
Load diff
Loading…
Reference in a new issue