Page MenuHomePhabricator

D14966.id36160.diff
No OneTemporary

D14966.id36160.diff

diff --git a/src/lint/linter/xhpast/rules/ArcanistBinaryExpressionSpacingXHPASTLinterRule.php b/src/lint/linter/xhpast/rules/ArcanistBinaryExpressionSpacingXHPASTLinterRule.php
--- a/src/lint/linter/xhpast/rules/ArcanistBinaryExpressionSpacingXHPASTLinterRule.php
+++ b/src/lint/linter/xhpast/rules/ArcanistBinaryExpressionSpacingXHPASTLinterRule.php
@@ -54,6 +54,27 @@
', ');
break;
}
+
+ $prev = $token->getPrevToken();
+ switch ($prev->getTypeName()) {
+ case 'T_WHITESPACE':
+ $prev_semantic = $prev->getPrevToken();
+ if ($prev_semantic->getLineNumber() != $token->getLineNumber()) {
+ $this->raiseLintAtOffset(
+ $prev->getOffset(),
+ pht('Convention: comma should not be preceded by space.'),
+ $prev->getValue().$token->getvalue(),
+ ','.$prev->getValue());
+ } else {
+ $this->raiseLintAtToken(
+ $prev,
+ pht('Convention: comma should not be preceded by space.'),
+ '');
+ }
+ break;
+ default:
+ break;
+ }
}
$tokens = $root->selectTokensOfType('T_DOUBLE_ARROW');
diff --git a/src/lint/linter/xhpast/rules/__tests__/binary-expression-spacing/multiline.lint-test b/src/lint/linter/xhpast/rules/__tests__/binary-expression-spacing/multiline.lint-test
new file mode 100644
--- /dev/null
+++ b/src/lint/linter/xhpast/rules/__tests__/binary-expression-spacing/multiline.lint-test
@@ -0,0 +1,19 @@
+<?php
+
+someFunc($arg1, // Some comment
+ $arg2, // Another Comment
+ $arg3);
+
+someFunc($arg1
+ , $arg2, $arg3);
+~~~~~~~~~~
+warning:7:15
+~~~~~~~~~~
+<?php
+
+someFunc($arg1, // Some comment
+ $arg2, // Another Comment
+ $arg3);
+
+someFunc($arg1,
+ $arg2, $arg3);
diff --git a/src/lint/linter/xhpast/rules/__tests__/binary-expression-spacing/trailing-whitespace.lint-test b/src/lint/linter/xhpast/rules/__tests__/binary-expression-spacing/trailing-whitespace.lint-test
new file mode 100644
--- /dev/null
+++ b/src/lint/linter/xhpast/rules/__tests__/binary-expression-spacing/trailing-whitespace.lint-test
@@ -0,0 +1,9 @@
+<?php
+
+someFunc($arg1 , $arg2, $arg3);
+~~~~~~~~~~
+warning:3:15
+~~~~~~~~~~
+<?php
+
+someFunc($arg1, $arg2, $arg3);

File Metadata

Mime Type
text/plain
Expires
Tue, Apr 15, 1:02 AM (1 w, 2 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7705975
Default Alt Text
D14966.id36160.diff (2 KB)

Event Timeline