mirror of
https://we.phorge.it/source/arcanist.git
synced 2025-04-06 09:28:23 +02:00
Extend LINT_BRACE_FORMATTING
to support more scenarios
Summary: Extend the `ArcanistXHPASTLinter::LINT_BRACE_FORMATTING` rule to support a bunch of extra cases. Test Plan: Added test cases. Reviewers: epriestley, #blessed_reviewers Reviewed By: epriestley, #blessed_reviewers Subscribers: epriestley, Korvin Differential Revision: https://secure.phabricator.com/D10572
This commit is contained in:
parent
ee2070fadb
commit
4ca3463df6
4 changed files with 61 additions and 22 deletions
|
@ -902,6 +902,39 @@ final class ArcanistXHPASTLinter extends ArcanistBaseXHPASTLinter {
|
||||||
'Use braces to surround a statement block.');
|
'Use braces to surround a statement block.');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$nodes = $root->selectDescendantsOfTypes(array(
|
||||||
|
'n_DO_WHILE',
|
||||||
|
'n_ELSE',
|
||||||
|
'n_ELSEIF',
|
||||||
|
));
|
||||||
|
foreach ($nodes as $list) {
|
||||||
|
$tokens = $list->getTokens();
|
||||||
|
if (!$tokens || last($tokens)->getValue() != '}') {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
list($before, $after) = $list->getSurroundingNonsemanticTokens();
|
||||||
|
if (!$before) {
|
||||||
|
$first = last($tokens);
|
||||||
|
|
||||||
|
$this->raiseLintAtToken(
|
||||||
|
$first,
|
||||||
|
self::LINT_BRACE_FORMATTING,
|
||||||
|
'Put opening braces on the same line as control statements and '.
|
||||||
|
'declarations, with a single space before them.',
|
||||||
|
' '.$first->getValue());
|
||||||
|
} else if (count($before) === 1) {
|
||||||
|
$before = reset($before);
|
||||||
|
if ($before->getValue() !== ' ') {
|
||||||
|
$this->raiseLintAtToken(
|
||||||
|
$before,
|
||||||
|
self::LINT_BRACE_FORMATTING,
|
||||||
|
'Put opening braces on the same line as control statements and '.
|
||||||
|
'declarations, with a single space before them.',
|
||||||
|
' ');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private function lintTautologicalExpressions(XHPASTNode $root) {
|
private function lintTautologicalExpressions(XHPASTNode $root) {
|
||||||
|
|
|
@ -30,6 +30,10 @@ function h(){}
|
||||||
if ($x) foo();
|
if ($x) foo();
|
||||||
else bar();
|
else bar();
|
||||||
do baz(); while ($x);
|
do baz(); while ($x);
|
||||||
|
|
||||||
|
if ($x) {}
|
||||||
|
else if ($y) {}
|
||||||
|
else {}
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
advice:3:14
|
advice:3:14
|
||||||
warning:7:13
|
warning:7:13
|
||||||
|
@ -44,6 +48,8 @@ warning:29:13
|
||||||
warning:30:9
|
warning:30:9
|
||||||
warning:31:6
|
warning:31:6
|
||||||
warning:32:4
|
warning:32:4
|
||||||
|
warning:34:11
|
||||||
|
warning:35:16
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
|
@ -66,3 +72,5 @@ function h() {}
|
||||||
if ($x) foo();
|
if ($x) foo();
|
||||||
else bar();
|
else bar();
|
||||||
do baz(); while ($x);
|
do baz(); while ($x);
|
||||||
|
|
||||||
|
if ($x) {} else if ($y) {} else {}
|
||||||
|
|
|
@ -3,8 +3,7 @@ if ( $x ) {}
|
||||||
f( );
|
f( );
|
||||||
q( );
|
q( );
|
||||||
g();
|
g();
|
||||||
if ($x) {}
|
if ($x) {} else if ( $y ) {}
|
||||||
else if ( $y ) {}
|
|
||||||
|
|
||||||
$obj->m(
|
$obj->m(
|
||||||
$x,
|
$x,
|
||||||
|
@ -25,27 +24,26 @@ warning:2:5
|
||||||
warning:2:8
|
warning:2:8
|
||||||
warning:3:3
|
warning:3:3
|
||||||
warning:4:3
|
warning:4:3
|
||||||
warning:7:10
|
warning:6:21
|
||||||
warning:7:13
|
warning:6:24
|
||||||
warning:13:6
|
warning:12:6
|
||||||
warning:13:30
|
warning:12:30
|
||||||
warning:14:10
|
warning:13:10
|
||||||
warning:14:19
|
warning:13:19
|
||||||
warning:15:12
|
warning:14:12
|
||||||
warning:15:15
|
warning:14:15
|
||||||
error:16:13 XHP19 Class-Filename Mismatch
|
error:15:13 XHP19 Class-Filename Mismatch
|
||||||
warning:17:21
|
warning:16:21
|
||||||
warning:17:24
|
warning:16:24
|
||||||
warning:19:10
|
warning:18:10
|
||||||
warning:19:25
|
warning:18:25
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
<?php
|
<?php
|
||||||
if ($x) {}
|
if ($x) {}
|
||||||
f();
|
f();
|
||||||
q();
|
q();
|
||||||
g();
|
g();
|
||||||
if ($x) {}
|
if ($x) {} else if ($y) {}
|
||||||
else if ($y) {}
|
|
||||||
|
|
||||||
$obj->m(
|
$obj->m(
|
||||||
$x,
|
$x,
|
||||||
|
|
|
@ -24,6 +24,7 @@ do {
|
||||||
} while(true);
|
} while(true);
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
warning:2:1
|
warning:2:1
|
||||||
|
warning:2:10
|
||||||
warning:3:1
|
warning:3:1
|
||||||
warning:4:1
|
warning:4:1
|
||||||
warning:5:1
|
warning:5:1
|
||||||
|
@ -31,21 +32,20 @@ warning:6:1
|
||||||
warning:7:1
|
warning:7:1
|
||||||
warning:7:6
|
warning:7:6
|
||||||
warning:8:1
|
warning:8:1
|
||||||
|
warning:9:11
|
||||||
|
warning:10:16
|
||||||
warning:13:3
|
warning:13:3
|
||||||
warning:14:3
|
warning:14:3
|
||||||
warning:24:3
|
warning:24:3
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
<?php
|
<?php
|
||||||
if ($x) {}
|
if ($x) {} else {}
|
||||||
else {}
|
|
||||||
for (;;) {}
|
for (;;) {}
|
||||||
foreach ($x as $y) {}
|
foreach ($x as $y) {}
|
||||||
while ($x) {}
|
while ($x) {}
|
||||||
do {} while ($x);
|
do {} while ($x);
|
||||||
switch ($x) {}
|
switch ($x) {}
|
||||||
if ($x) {}
|
if ($x) {} else if ($y) {} else if ($z) {}
|
||||||
else if ($y) {}
|
|
||||||
else if ($z) {}
|
|
||||||
|
|
||||||
if ($x) {}
|
if ($x) {}
|
||||||
if ($x) {}
|
if ($x) {}
|
||||||
|
|
Loading…
Add table
Reference in a new issue