Skip to content

Commit f45b16c

Browse files
committed
Fix some errors found by PHPStan
Signed-off-by: Maurício Meneghini Fauth <[email protected]>
1 parent d8c0b83 commit f45b16c

File tree

6 files changed

+69
-58
lines changed

6 files changed

+69
-58
lines changed

phpstan-baseline.neon

Lines changed: 14 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1765,21 +1765,6 @@ parameters:
17651765
count: 1
17661766
path: src/Tools/ContextGenerator.php
17671767

1768-
-
1769-
message: "#^Access to an undefined property Exception\\:\\:\\$ch\\.$#"
1770-
count: 1
1771-
path: src/Tools/TestGenerator.php
1772-
1773-
-
1774-
message: "#^Access to an undefined property Exception\\:\\:\\$pos\\.$#"
1775-
count: 1
1776-
path: src/Tools/TestGenerator.php
1777-
1778-
-
1779-
message: "#^Access to an undefined property Exception\\:\\:\\$token\\.$#"
1780-
count: 1
1781-
path: src/Tools/TestGenerator.php
1782-
17831768
-
17841769
message: "#^Argument of an invalid type array\\<int, string\\>\\|false supplied for foreach, only iterables are supported\\.$#"
17851770
count: 1
@@ -2151,12 +2136,12 @@ parameters:
21512136
path: src/Utils/Table.php
21522137

21532138
-
2154-
message: "#^Access to property \\$count on an unknown class PhpMyAdmin\\\\SqlParser\\\\Utils\\\\UtfString\\.$#"
2139+
message: "#^Cannot access property \\$count on PhpMyAdmin\\\\SqlParser\\\\TokensList\\|PhpMyAdmin\\\\SqlParser\\\\UtfString\\|string\\.$#"
21552140
count: 2
21562141
path: src/Utils/Tokens.php
21572142

21582143
-
2159-
message: "#^Access to property \\$tokens on an unknown class PhpMyAdmin\\\\SqlParser\\\\Utils\\\\UtfString\\.$#"
2144+
message: "#^Cannot access property \\$tokens on PhpMyAdmin\\\\SqlParser\\\\TokensList\\|PhpMyAdmin\\\\SqlParser\\\\UtfString\\|string\\.$#"
21602145
count: 5
21612146
path: src/Utils/Tokens.php
21622147

@@ -2191,12 +2176,7 @@ parameters:
21912176
path: src/Utils/Tokens.php
21922177

21932178
-
2194-
message: "#^Parameter \\#1 \\$str of static method PhpMyAdmin\\\\SqlParser\\\\Lexer\\:\\:getTokens\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\UtfString\\|string, PhpMyAdmin\\\\SqlParser\\\\TokensList\\|PhpMyAdmin\\\\SqlParser\\\\Utils\\\\UtfString\\|string given\\.$#"
2195-
count: 1
2196-
path: src/Utils/Tokens.php
2197-
2198-
-
2199-
message: "#^Parameter \\$list of method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Tokens\\:\\:replaceTokens\\(\\) has invalid type PhpMyAdmin\\\\SqlParser\\\\Utils\\\\UtfString\\.$#"
2179+
message: "#^Parameter \\#1 \\$str of static method PhpMyAdmin\\\\SqlParser\\\\Lexer\\:\\:getTokens\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\UtfString\\|string, PhpMyAdmin\\\\SqlParser\\\\TokensList\\|PhpMyAdmin\\\\SqlParser\\\\UtfString\\|string given\\.$#"
22002180
count: 1
22012181
path: src/Utils/Tokens.php
22022182

@@ -2230,11 +2210,6 @@ parameters:
22302210
count: 1
22312211
path: tests/Components/ArrayObjTest.php
22322212

2233-
-
2234-
message: "#^Access to an undefined property PhpMyAdmin\\\\SqlParser\\\\Statement\\:\\:\\$fields\\.$#"
2235-
count: 3
2236-
path: tests/Components/CreateDefinitionTest.php
2237-
22382213
-
22392214
message: "#^Cannot access offset 0 on array\\<PhpMyAdmin\\\\SqlParser\\\\Components\\\\CreateDefinition\\>\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\.$#"
22402215
count: 1
@@ -2247,6 +2222,16 @@ parameters:
22472222

22482223
-
22492224
message: "#^Cannot access offset 2 on array\\<PhpMyAdmin\\\\SqlParser\\\\Components\\\\CreateDefinition\\>\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\.$#"
2225+
count: 2
2226+
path: tests/Components/CreateDefinitionTest.php
2227+
2228+
-
2229+
message: "#^Cannot access offset 5 on array\\<PhpMyAdmin\\\\SqlParser\\\\Components\\\\CreateDefinition\\>\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\.$#"
2230+
count: 1
2231+
path: tests/Components/CreateDefinitionTest.php
2232+
2233+
-
2234+
message: "#^Cannot access offset 6 on array\\<PhpMyAdmin\\\\SqlParser\\\\Components\\\\CreateDefinition\\>\\|PhpMyAdmin\\\\SqlParser\\\\Components\\\\ArrayObj\\.$#"
22502235
count: 1
22512236
path: tests/Components/CreateDefinitionTest.php
22522237

@@ -2340,11 +2325,6 @@ parameters:
23402325
count: 1
23412326
path: tests/Lexer/TokensListTest.php
23422327

2343-
-
2344-
message: "#^Missing call to parent\\:\\:setUp\\(\\) method\\.$#"
2345-
count: 1
2346-
path: tests/Lexer/TokensListTest.php
2347-
23482328
-
23492329
message: "#^Method PhpMyAdmin\\\\SqlParser\\\\Tests\\\\Misc\\\\BugsTest\\:\\:bugProvider\\(\\) return type has no value type specified in iterable type array\\.$#"
23502330
count: 1
@@ -2861,7 +2841,7 @@ parameters:
28612841
path: tests/Utils/TokensTest.php
28622842

28632843
-
2864-
message: "#^Parameter \\#1 \\$list of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Tokens\\:\\:replaceTokens\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\TokensList\\|PhpMyAdmin\\\\SqlParser\\\\Utils\\\\UtfString\\|string, mixed given\\.$#"
2844+
message: "#^Parameter \\#1 \\$list of static method PhpMyAdmin\\\\SqlParser\\\\Utils\\\\Tokens\\:\\:replaceTokens\\(\\) expects PhpMyAdmin\\\\SqlParser\\\\TokensList\\|PhpMyAdmin\\\\SqlParser\\\\UtfString\\|string, mixed given\\.$#"
28652845
count: 1
28662846
path: tests/Utils/TokensTest.php
28672847

psalm-baseline.xml

Lines changed: 48 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<files psalm-version="4.11.2@6fba5eb554f9507b72932f9c75533d8af593688d">
2+
<files psalm-version="4.12.0@e42bc4a23f67acba28a23bb09c348e2ff38a1d87">
33
<file src="src/Component.php">
44
<MixedReturnStatement occurrences="1">
55
<code>static::build($this)</code>
@@ -758,8 +758,7 @@
758758
</MoreSpecificImplementedParamType>
759759
</file>
760760
<file src="src/Components/WithKeyword.php">
761-
<DocblockTypeContradiction occurrences="2">
762-
<code>$component instanceof WithKeyword</code>
761+
<DocblockTypeContradiction occurrences="1">
763762
<code>isset($component-&gt;statement)</code>
764763
</DocblockTypeContradiction>
765764
<MoreSpecificImplementedParamType occurrences="1">
@@ -1738,11 +1737,6 @@
17381737
<code>$debugFile</code>
17391738
<code>$debugFile</code>
17401739
</PossiblyNullArgument>
1741-
<UndefinedPropertyFetch occurrences="3">
1742-
<code>$err-&gt;ch</code>
1743-
<code>$err-&gt;pos</code>
1744-
<code>$err-&gt;token</code>
1745-
</UndefinedPropertyFetch>
17461740
<UnnecessaryVarAnnotation occurrences="1">
17471741
<code>Lexer</code>
17481742
</UnnecessaryVarAnnotation>
@@ -2102,18 +2096,53 @@
21022096
</MixedAssignment>
21032097
</file>
21042098
<file src="src/Utils/Tokens.php">
2105-
<MixedArgument occurrences="1">
2099+
<InvalidReturnStatement occurrences="1"/>
2100+
<InvalidReturnType occurrences="1">
2101+
<code>TokensList</code>
2102+
</InvalidReturnType>
2103+
<MixedArgument occurrences="3">
2104+
<code>$find[$k]</code>
2105+
<code>$list-&gt;tokens[$j]</code>
21062106
<code>$pattern['value_str']</code>
21072107
</MixedArgument>
2108-
<MixedInferredReturnType occurrences="1">
2109-
<code>TokensList</code>
2110-
</MixedInferredReturnType>
2108+
<MixedArgumentTypeCoercion occurrences="1">
2109+
<code>$newList</code>
2110+
</MixedArgumentTypeCoercion>
2111+
<MixedArrayAccess occurrences="5">
2112+
<code>$list-&gt;tokens[$i]</code>
2113+
<code>$list-&gt;tokens[$i]</code>
2114+
<code>$list-&gt;tokens[$i]</code>
2115+
<code>$list-&gt;tokens[$j]</code>
2116+
<code>$list-&gt;tokens[$j]</code>
2117+
</MixedArrayAccess>
2118+
<MixedAssignment occurrences="4">
2119+
<code>$newList[]</code>
2120+
<code>$newList[]</code>
2121+
<code>$newList[]</code>
2122+
<code>$token</code>
2123+
</MixedAssignment>
21112124
<MixedOperand occurrences="1">
21122125
<code>$pattern['flags']</code>
21132126
</MixedOperand>
2114-
<UndefinedDocblockClass occurrences="1">
2115-
<code>TokensList|string|UtfString</code>
2116-
</UndefinedDocblockClass>
2127+
<MixedPropertyFetch occurrences="2">
2128+
<code>$list-&gt;tokens[$i]-&gt;type</code>
2129+
<code>$list-&gt;tokens[$j]-&gt;type</code>
2130+
</MixedPropertyFetch>
2131+
<PossiblyInvalidArgument occurrences="1">
2132+
<code>$list</code>
2133+
</PossiblyInvalidArgument>
2134+
<PossiblyInvalidPropertyFetch occurrences="2">
2135+
<code>$list-&gt;count</code>
2136+
<code>$list-&gt;tokens</code>
2137+
</PossiblyInvalidPropertyFetch>
2138+
<UndefinedPropertyFetch occurrences="2">
2139+
<code>$list-&gt;count</code>
2140+
<code>$list-&gt;tokens</code>
2141+
</UndefinedPropertyFetch>
2142+
<UnnecessaryVarAnnotation occurrences="2">
2143+
<code>bool</code>
2144+
<code>int</code>
2145+
</UnnecessaryVarAnnotation>
21172146
</file>
21182147
<file src="tests/Builder/CreateStatementTest.php">
21192148
<MixedInferredReturnType occurrences="1">
@@ -2145,19 +2174,14 @@
21452174
<code>$parser-&gt;statements[1]-&gt;fields[5]</code>
21462175
<code>$parser-&gt;statements[1]-&gt;fields[6]</code>
21472176
</MixedArgument>
2148-
<MixedArrayAccess occurrences="3">
2149-
<code>$parser-&gt;statements[1]-&gt;fields[2]</code>
2150-
<code>$parser-&gt;statements[1]-&gt;fields[5]</code>
2151-
<code>$parser-&gt;statements[1]-&gt;fields[6]</code>
2152-
</MixedArrayAccess>
2153-
<UndefinedMethod occurrences="3">
2177+
<UndefinedMethod occurrences="6">
21542178
<code>$parser-&gt;statements[0]-&gt;fields</code>
21552179
<code>$parser-&gt;statements[0]-&gt;fields</code>
21562180
<code>$parser-&gt;statements[0]-&gt;fields</code>
2157-
</UndefinedMethod>
2158-
<UndefinedPropertyFetch occurrences="1">
21592181
<code>$parser-&gt;statements[1]-&gt;fields</code>
2160-
</UndefinedPropertyFetch>
2182+
<code>$parser-&gt;statements[1]-&gt;fields</code>
2183+
<code>$parser-&gt;statements[1]-&gt;fields</code>
2184+
</UndefinedMethod>
21612185
</file>
21622186
<file src="tests/Components/ExpressionTest.php">
21632187
<MixedArgument occurrences="1">

src/Tools/TestGenerator.php

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66

77
use Exception;
88
use PhpMyAdmin\SqlParser\Context;
9+
use PhpMyAdmin\SqlParser\Exceptions\LexerException;
10+
use PhpMyAdmin\SqlParser\Exceptions\ParserException;
911
use PhpMyAdmin\SqlParser\Lexer;
1012
use PhpMyAdmin\SqlParser\Parser;
1113
use Zumba\JsonSerializer\JsonSerializer;
@@ -79,6 +81,7 @@ public static function generate($query, $type = 'parser')
7981

8082
// Extracting lexer's errors.
8183
if (! empty($lexer->errors)) {
84+
/** @var LexerException $err */
8285
foreach ($lexer->errors as $err) {
8386
$lexerErrors[] = [
8487
$err->getMessage(),
@@ -93,6 +96,7 @@ public static function generate($query, $type = 'parser')
9396

9497
// Extracting parser's errors.
9598
if (! empty($parser->errors)) {
99+
/** @var ParserException $err */
96100
foreach ($parser->errors as $err) {
97101
$parserErrors[] = [
98102
$err->getMessage(),

src/Utils/Tokens.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use PhpMyAdmin\SqlParser\Lexer;
1111
use PhpMyAdmin\SqlParser\Token;
1212
use PhpMyAdmin\SqlParser\TokensList;
13+
use PhpMyAdmin\SqlParser\UtfString;
1314

1415
use function count;
1516
use function strcasecmp;

tests/Components/CreateDefinitionTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,7 @@ public function testBuild3(): void
119119
. ''
120120
. 'ALTER TABLE `searches` ADD `admins_only` BOOLEAN NOT NULL DEFAULT FALSE AFTER `show_separators`;'
121121
);
122+
$this->assertInstanceOf(CreateStatement::class, $parser->statements[1]);
122123
$this->assertEquals(
123124
'`public_name` varchar(120) COLLATE utf8_unicode_ci NOT NULL',
124125
CreateDefinition::build($parser->statements[1]->fields[2])

tests/Lexer/TokensListTest.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ class TokensListTest extends TestCase
2424
*/
2525
public function setUp(): void
2626
{
27+
parent::setUp();
2728
$this->tokens = [
2829
new Token('SELECT', Token::TYPE_KEYWORD),
2930
new Token(' ', Token::TYPE_WHITESPACE),

0 commit comments

Comments
 (0)