mirror of
https://we.phorge.it/source/arcanist.git
synced 2024-11-26 08:42:40 +01:00
Lint short ternary as PHP 5.3 feature
Summary: I don't offer a replacement because `f() ?: 1` converted to `f() ? f() : 1` can cause side effects and whitespace issues. Test Plan: New test. Reviewers: epriestley Reviewed By: epriestley CC: aran, Korvin Differential Revision: https://secure.phabricator.com/D3489
This commit is contained in:
parent
a5e2f81928
commit
7ee0f3e3b3
2 changed files with 16 additions and 1 deletions
|
@ -404,6 +404,18 @@ final class ArcanistXHPASTLinter extends ArcanistLinter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$ternaries = $root->selectDescendantsOfType('n_TERNARY_EXPRESSION');
|
||||||
|
foreach ($ternaries as $ternary) {
|
||||||
|
$yes = $ternary->getChildByIndex(1);
|
||||||
|
if ($yes->getTypeName() == 'n_EMPTY') {
|
||||||
|
$this->raiseLintAtNode(
|
||||||
|
$ternary,
|
||||||
|
self::LINT_PHP_53_FEATURES,
|
||||||
|
'This codebase targets PHP 5.2, but short ternary was not '.
|
||||||
|
'introduced until PHP 5.3.');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
$this->lintPHP53Functions($root);
|
$this->lintPHP53Functions($root);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,8 @@ f(function() {});
|
||||||
g(function() use ($c) {});
|
g(function() use ($c) {});
|
||||||
h(function /* ! */ () use ($c) {});
|
h(function /* ! */ () use ($c) {});
|
||||||
static::m();
|
static::m();
|
||||||
|
1 ? 1 : 2;
|
||||||
|
1 ?: 2;
|
||||||
~~~~~~~~~~
|
~~~~~~~~~~
|
||||||
disabled:3:1
|
disabled:3:1
|
||||||
disabled:4:5
|
disabled:4:5
|
||||||
|
@ -13,3 +15,4 @@ disabled:5:3
|
||||||
disabled:6:3
|
disabled:6:3
|
||||||
disabled:7:3
|
disabled:7:3
|
||||||
disabled:8:1
|
disabled:8:1
|
||||||
|
disabled:10:1
|
Loading…
Reference in a new issue