1
0
Fork 0
mirror of https://we.phorge.it/source/arcanist.git synced 2024-11-25 16:22:42 +01:00

Minor improvement for array value linter rule

Summary:
This linter rule fails on multi-line arrays with no whitespace before the first array value. Specifically, the following exception is thrown:

```
Fatal error: Call to a member function isAnyWhitespace() on boolean in arcanist/src/lint/linter/xhpast/rules/ArcanistArrayValueXHPASTLinterRule.php on line 40
```

Test Plan: Added another test case.

Reviewers: epriestley, #blessed_reviewers

Reviewed By: epriestley, #blessed_reviewers

Subscribers: Korvin

Differential Revision: https://secure.phabricator.com/D13856
This commit is contained in:
Joshua Spence 2015-08-11 07:55:11 +10:00
parent 830bcbc2a5
commit 504ff42681
2 changed files with 9 additions and 1 deletions

View file

@ -16,12 +16,16 @@ array(
/* OPEN */ 1, /* OPEN */ 1,
/* CLOSED */ 2, /* CLOSED */ 2,
); );
array('quack',
);
~~~~~~~~~~ ~~~~~~~~~~
warning:4:5 warning:4:5
warning:4:8 warning:4:8
warning:8:18 warning:8:18
warning:12:17 warning:12:17
warning:12:32 warning:12:32
warning:20:7
~~~~~~~~~~ ~~~~~~~~~~
<?php <?php
@ -46,3 +50,7 @@ array(
/* OPEN */ 1, /* OPEN */ 1,
/* CLOSED */ 2, /* CLOSED */ 2,
); );
array(
'quack',
);

View file

@ -36,7 +36,7 @@ final class ArcanistArrayValueXHPASTLinterRule
list($before, $after) = $value->getSurroundingNonsemanticTokens(); list($before, $after) = $value->getSurroundingNonsemanticTokens();
if (strpos(implode('', mpull($before, 'getValue')), "\n") === false) { if (strpos(implode('', mpull($before, 'getValue')), "\n") === false) {
if (last($before)->isAnyWhitespace()) { if (last($before) && last($before)->isAnyWhitespace()) {
$token = last($before); $token = last($before);
$replacement = "\n".$value->getIndentation(); $replacement = "\n".$value->getIndentation();
} else { } else {