Page MenuHomePhabricator

D13804.diff
No OneTemporary

D13804.diff

diff --git a/src/lint/linter/__tests__/xhpast/call-time-pass-by-reference.lint-test b/src/lint/linter/__tests__/xhpast/call-time-pass-by-reference.lint-test
--- a/src/lint/linter/__tests__/xhpast/call-time-pass-by-reference.lint-test
+++ b/src/lint/linter/__tests__/xhpast/call-time-pass-by-reference.lint-test
@@ -1,8 +1,8 @@
<?php
class MyClass {
- public function myfunc($var) {
- echo $var;
- }
+ public function myfunc($var) {
+ echo $var;
+ }
}
$myvar = true;
@@ -21,7 +21,7 @@
$foo(&$myvar);
-array_walk(array(), function() use (&$x) {});
+array_walk(array(), function () use (&$x) {});
MyClass::myfunc(array(&$x, &$y));
~~~~~~~~~~
error:2:7 XHP19
diff --git a/src/lint/linter/__tests__/xhpast/decl-parens-hug-closing.lint-test b/src/lint/linter/__tests__/xhpast/decl-parens-hug-closing.lint-test
--- a/src/lint/linter/__tests__/xhpast/decl-parens-hug-closing.lint-test
+++ b/src/lint/linter/__tests__/xhpast/decl-parens-hug-closing.lint-test
@@ -20,9 +20,10 @@
}
-f(function($x) {});
-f(function($x ) {});
-f(function($x ) use ($z) {});
+f(function ($x) {});
+f(function ($x ) {});
+f(function ($x ) use ($z) {});
+f(function ($x)use($z) {});
~~~~~~~~~~
warning:4:14
warning:5:11
@@ -31,8 +32,10 @@
warning:13:23
warning:16:31
warning:19:33
-warning:24:14
-warning:25:14
+warning:24:15
+warning:25:15
+warning:26:16
+warning:26:19
~~~~~~~~~~
<?php
@@ -56,6 +59,7 @@
}
-f(function($x) {});
-f(function($x) {});
-f(function($x) use ($z) {});
+f(function ($x) {});
+f(function ($x) {});
+f(function ($x) use ($z) {});
+f(function ($x) use ($z) {});
diff --git a/src/lint/linter/__tests__/xhpast/inner-function.lint-test b/src/lint/linter/__tests__/xhpast/inner-function.lint-test
--- a/src/lint/linter/__tests__/xhpast/inner-function.lint-test
+++ b/src/lint/linter/__tests__/xhpast/inner-function.lint-test
@@ -8,7 +8,7 @@
// Closures are allowed.
function my_func($foo) {
- function() {};
+ function () {};
}
~~~~~~~~~~
warning:5:5
diff --git a/src/lint/linter/__tests__/xhpast/naming-conventions.lint-test b/src/lint/linter/__tests__/xhpast/naming-conventions.lint-test
--- a/src/lint/linter/__tests__/xhpast/naming-conventions.lint-test
+++ b/src/lint/linter/__tests__/xhpast/naming-conventions.lint-test
@@ -21,7 +21,7 @@
-function() use ($this_is_a_closure) {};
+function () use ($this_is_a_closure) {};
function f(&$YY) {}
diff --git a/src/lint/linter/__tests__/xhpast/php53-features.lint-test b/src/lint/linter/__tests__/xhpast/php53-features.lint-test
--- a/src/lint/linter/__tests__/xhpast/php53-features.lint-test
+++ b/src/lint/linter/__tests__/xhpast/php53-features.lint-test
@@ -2,9 +2,8 @@
namespace a;
use b, c;
-f(function() {});
-g(function() use ($c) {});
-h(function /* ! */ () use ($c) {});
+f(function () {});
+g(function () use ($c) {});
static::m();
1 ? 1 : 2;
1 ?: 2;
@@ -16,10 +15,9 @@
error:4:5
error:5:3
error:6:3
-error:7:3
-error:8:1
-error:10:1
-error:13:6
+error:7:1
+error:9:1
+error:12:6
~~~~~~~~~~
~~~~~~~~~~
{
diff --git a/src/lint/linter/__tests__/xhpast/reused-iterator-reference.lint-test b/src/lint/linter/__tests__/xhpast/reused-iterator-reference.lint-test
--- a/src/lint/linter/__tests__/xhpast/reused-iterator-reference.lint-test
+++ b/src/lint/linter/__tests__/xhpast/reused-iterator-reference.lint-test
@@ -90,13 +90,13 @@
function closure1() {
$ar = array();
foreach ($ar as &$a) {}
- function($a) {
+ function ($a) {
$a++;
};
}
function closure2() {
- function() {
+ function () {
$ar = array();
foreach ($ar as &$a) {}
};
@@ -104,7 +104,7 @@
}
function closure3() {
- function() {
+ function () {
$ar = array();
foreach ($ar as &$a) {}
$a++; // Reuse of $a
@@ -114,7 +114,7 @@
function closure4() {
$ar = array();
foreach ($ar as &$a) {}
- function($a) {
+ function ($a) {
unset($a);
};
$a++; // Reuse of $a
diff --git a/src/lint/linter/__tests__/xhpast/switches.lint-test b/src/lint/linter/__tests__/xhpast/switches.lint-test
--- a/src/lint/linter/__tests__/xhpast/switches.lint-test
+++ b/src/lint/linter/__tests__/xhpast/switches.lint-test
@@ -65,7 +65,7 @@
}
case 4:
function f() { throw new Exception(); }
- g(function() { return; });
+ g(function () { return; });
final class C { public function m() { return; } }
interface I {}
case 5:
diff --git a/src/lint/linter/__tests__/xhpast/undeclared-variables.lint-test b/src/lint/linter/__tests__/xhpast/undeclared-variables.lint-test
--- a/src/lint/linter/__tests__/xhpast/undeclared-variables.lint-test
+++ b/src/lint/linter/__tests__/xhpast/undeclared-variables.lint-test
@@ -1,6 +1,6 @@
<?php
-function() use ($c) {
+function () use ($c) {
$c++;
};
@@ -173,7 +173,7 @@
}
function some_func($x, $y) {
- $func = function($z) use ($x) {
+ $func = function ($z) use ($x) {
echo $x;
echo $y;
echo $z;
diff --git a/src/lint/linter/xhpast/rules/ArcanistDeclarationParenthesesXHPASTLinterRule.php b/src/lint/linter/xhpast/rules/ArcanistDeclarationParenthesesXHPASTLinterRule.php
--- a/src/lint/linter/xhpast/rules/ArcanistDeclarationParenthesesXHPASTLinterRule.php
+++ b/src/lint/linter/xhpast/rules/ArcanistDeclarationParenthesesXHPASTLinterRule.php
@@ -24,7 +24,7 @@
$tokens = $params->getTokens();
$first = head($tokens);
- $last = last($tokens);
+ $last = last($tokens);
$leading = $first->getNonsemanticTokensBefore();
$leading_text = implode('', mpull($leading, 'getValue'));
@@ -32,14 +32,27 @@
$trailing = $last->getNonsemanticTokensBefore();
$trailing_text = implode('', mpull($trailing, 'getValue'));
- if (preg_match('/^\s+$/', $leading_text)) {
- $this->raiseLintAtOffset(
- $first->getOffset() - strlen($leading_text),
- pht(
- 'Convention: no spaces before opening parenthesis in '.
- 'function and method declarations.'),
- $leading_text,
- '');
+ if ($dec->getChildByIndex(2)->getTypeName() == 'n_EMPTY') {
+ // Anonymous functions.
+ if ($leading_text != ' ') {
+ $this->raiseLintAtOffset(
+ $first->getOffset() - strlen($leading_text),
+ pht(
+ 'Convention: space before opening parenthesis in '.
+ 'anonymous function declarations.'),
+ $leading_text,
+ ' ');
+ }
+ } else {
+ if (preg_match('/^\s+$/', $leading_text)) {
+ $this->raiseLintAtOffset(
+ $first->getOffset() - strlen($leading_text),
+ pht(
+ 'Convention: no spaces before opening parenthesis in '.
+ 'function and method declarations.'),
+ $leading_text,
+ '');
+ }
}
if (preg_match('/^\s+$/', $trailing_text)) {
@@ -51,6 +64,33 @@
$trailing_text,
'');
}
+
+ $use_list = $dec->getChildByIndex(4);
+ if ($use_list->getTypeName() == 'n_EMPTY') {
+ continue;
+ }
+ $use_token = $use_list->selectTokensOfType('T_USE');
+
+ foreach ($use_token as $use) {
+ $before = $use->getNonsemanticTokensBefore();
+ $after = $use->getNonsemanticTokensAfter();
+
+ if (!$before) {
+ $this->raiseLintAtOffset(
+ $use->getOffset(),
+ pht('Convention: space before `%s` token.', 'use'),
+ '',
+ ' ');
+ }
+
+ if (!$after) {
+ $this->raiseLintAtOffset(
+ $use->getOffset() + strlen($use->getValue()),
+ pht('Convention: space after `%s` token.', 'use'),
+ '',
+ ' ');
+ }
+ }
}
}

File Metadata

Mime Type
text/plain
Expires
Tue, Dec 24, 7:03 PM (17 h, 18 m)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6923907
Default Alt Text
D13804.diff (7 KB)

Event Timeline