mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-25 16:22:42 +01:00
Stop XHPASTLinter from eating a newline after else
Summary: If the else clause does not have braces (one-liner), XHPASTLinter eats the newline and brings the body statement of the else clause to the same line. Test Plan: added a new test to space-after-control-keywords.lint-test Reviewers: epriestley CC: aran, epriestley, kiyoto Differential Revision: https://secure.phabricator.com/D1367
This commit is contained in:
parent
b61e4eacf1
commit
6dfa45a8b3
2 changed files with 30 additions and 0 deletions
|
@ -973,6 +973,21 @@ class ArcanistXHPASTLinter extends ArcanistLinter {
|
||||||
$token->getValue().' ');
|
$token->getValue().' ');
|
||||||
} else if (count($after) == 1) {
|
} else if (count($after) == 1) {
|
||||||
$space = head($after);
|
$space = head($after);
|
||||||
|
|
||||||
|
// If we have an else clause with braces, $space may not be
|
||||||
|
// a single white space. e.g.,
|
||||||
|
//
|
||||||
|
// if ($x)
|
||||||
|
// echo 'foo'
|
||||||
|
// else // <- $space is not " " but "\n ".
|
||||||
|
// echo 'bar'
|
||||||
|
//
|
||||||
|
// We just require it starts with either a whitespace or a newline.
|
||||||
|
if ($token->getTypeName() == 'T_ELSE' ||
|
||||||
|
$token->getTypeName() == 'T_DO') {
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
if ($space->isAnyWhitespace() && $space->getValue() != ' ') {
|
if ($space->isAnyWhitespace() && $space->getValue() != ' ') {
|
||||||
$this->raiseLintAtToken(
|
$this->raiseLintAtToken(
|
||||||
$space,
|
$space,
|
||||||
|
|
|
@ -14,6 +14,13 @@ if ($x) {}
|
||||||
if
|
if
|
||||||
|
|
||||||
($x) {}
|
($x) {}
|
||||||
|
if ($x)
|
||||||
|
echo 100;
|
||||||
|
else
|
||||||
|
echo 10;
|
||||||
|
do
|
||||||
|
echo 1;
|
||||||
|
while(true);
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
warning:2:1
|
warning:2:1
|
||||||
warning:3:1
|
warning:3:1
|
||||||
|
@ -25,6 +32,7 @@ warning:7:6
|
||||||
warning:8:1
|
warning:8:1
|
||||||
warning:13:3
|
warning:13:3
|
||||||
warning:14:3
|
warning:14:3
|
||||||
|
warning:23:1
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
<?php
|
<?php
|
||||||
if ($x) {}
|
if ($x) {}
|
||||||
|
@ -40,3 +48,10 @@ else if ($z) {}
|
||||||
|
|
||||||
if ($x) {}
|
if ($x) {}
|
||||||
if ($x) {}
|
if ($x) {}
|
||||||
|
if ($x)
|
||||||
|
echo 100;
|
||||||
|
else
|
||||||
|
echo 10;
|
||||||
|
do
|
||||||
|
echo 1;
|
||||||
|
while (true);
|
||||||
|
|
Loading…
Reference in a new issue