Skip to content

Commit 937564f

Browse files
committed
Update code to PHPStan Level 3
Added ReturnTypeWillChange Fix return type for Expression Add type hints for returned variables Add generic parameter for delimted list Fixing type hints Ignore co-variance error Remove TODO - it already must always be a Node Ignore error Add missing types Update phpstan to level 3 Add phpstan to dev reqs No need to install phpstan independently Do not override unary expression operand It seems to me that the operand can be any expression Added token to operand types -- should this be MissingToken? Include tokens in return types ExpressionStatement => EchoStatement It seems this is always an EchoStatement not an ExpressionStatement unaryExpressionOrHigher can return a ThrowExpression Remove overridden property Add Token to union Remove QualifiedName and rename local variable Remove unused import Add return types Remove trailing whitespace Add MissingToken type
1 parent 3eccfd2 commit 937564f

17 files changed

+49
-38
lines changed

.travis.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@ cache:
2525
- validation/frameworks
2626

2727
before_script:
28-
- if [[ $STATIC_ANALYSIS = true ]]; then composer require phpstan/phpstan --no-update; fi
2928
- composer install
3029
- set -e # Stop on first error.
3130
- phpenv config-rm xdebug.ini || true

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"php": ">=7.2"
77
},
88
"require-dev": {
9-
"phpunit/phpunit": "^8.5.15"
9+
"phpunit/phpunit": "^8.5.15",
10+
"phpstan/phpstan": "^1.8"
1011
},
1112
"license": "MIT",
1213
"authors": [

phpstan.neon

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
parameters:
2-
level: 2
2+
level: 3
33
paths:
44
- src/
55
ignoreErrors:

src/Node.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,8 @@ public function getRoot() : Node {
140140
while ($node->parent !== null) {
141141
$node = $node->parent;
142142
}
143+
144+
/** @var SourceFileNode $node */
143145
return $node;
144146
}
145147

@@ -613,6 +615,7 @@ public function getNamespaceDefinition() {
613615
$namespaceDefinition = null;
614616
}
615617

618+
/** @var NamespaceDefinition|null $namespaceDefinition */
616619
return $namespaceDefinition;
617620
}
618621

src/Node/EnumCaseDeclaration.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ class EnumCaseDeclaration extends Node {
1616
/** @var Token */
1717
public $caseKeyword;
1818

19-
/** @var QualifiedName */
19+
/** @var Token */
2020
public $name;
2121

2222
/** @var Token|null */

src/Node/Expression/AssignmentExpression.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111

1212
class AssignmentExpression extends BinaryExpression {
1313

14-
/** @var Expression */
14+
/** @var Expression|Token */
1515
public $leftOperand;
1616

1717
/** @var Token */

src/Node/Expression/BinaryExpression.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,13 @@
1111

1212
class BinaryExpression extends Expression {
1313

14-
/** @var Expression */
14+
/** @var Expression|Token */
1515
public $leftOperand;
1616

1717
/** @var Token */
1818
public $operator;
1919

20-
/** @var Expression */
20+
/** @var Expression|Token */
2121
public $rightOperand;
2222

2323
const CHILD_NAMES = [

src/Node/Expression/PrefixUpdateExpression.php

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,6 @@ class PrefixUpdateExpression extends UnaryExpression {
1313
/** @var Token */
1414
public $incrementOrDecrementOperator;
1515

16-
/** @var Variable */
17-
public $operand;
18-
1916
const CHILD_NAMES = [
2017
'incrementOrDecrementOperator',
2118
'operand'

src/Node/Expression/SubscriptExpression.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
namespace Microsoft\PhpParser\Node\Expression;
88

9+
use Microsoft\PhpParser\MissingToken;
910
use Microsoft\PhpParser\Node\Expression;
1011
use Microsoft\PhpParser\Token;
1112

@@ -17,7 +18,7 @@ class SubscriptExpression extends Expression {
1718
/** @var Token */
1819
public $openBracketOrBrace;
1920

20-
/** @var Expression */
21+
/** @var Expression|MissingToken */
2122
public $accessExpression;
2223

2324
/** @var Token */

src/Node/Expression/UnaryExpression.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,10 @@
77
namespace Microsoft\PhpParser\Node\Expression;
88

99
use Microsoft\PhpParser\Node\Expression;
10+
use Microsoft\PhpParser\Token;
1011

1112
class UnaryExpression extends Expression {
12-
/** @var UnaryExpression|Variable */
13+
/** @var Expression|Variable|Token */
1314
public $operand;
1415

1516
const CHILD_NAMES = [

0 commit comments

Comments
 (0)