Skip to content

Commit f7e31f3

Browse files
Bump staabm/phpstan-dba from 0.3 to 0.3.1 (#788)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Markus Staab <[email protected]>
1 parent 0ffe9b9 commit f7e31f3

File tree

5 files changed

+55
-23
lines changed

5 files changed

+55
-23
lines changed

composer.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"spaze/phpstan-disallowed-calls": "4.0.1",
1212
"sqlftw/sqlftw": "0.1.16",
1313
"staabm/phpstan-baseline-analysis": "0.13.1",
14-
"staabm/phpstan-dba": "0.3",
14+
"staabm/phpstan-dba": "0.3.1",
1515
"staabm/phpstan-todo-by": "0.2",
1616
"symplify/phpstan-rules": "14.0.2",
1717
"tomasvotruba/cognitive-complexity": "1.0",

composer.lock

+7-7
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/composer/installed.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -1663,17 +1663,17 @@
16631663
},
16641664
{
16651665
"name": "staabm/phpstan-dba",
1666-
"version": "0.3",
1667-
"version_normalized": "0.3.0.0",
1666+
"version": "0.3.1",
1667+
"version_normalized": "0.3.1.0",
16681668
"source": {
16691669
"type": "git",
16701670
"url": "https://github.com/staabm/phpstan-dba.git",
1671-
"reference": "b32c279fcb7e9fa0c30a3aedc1f4b4913dac14f1"
1671+
"reference": "6dac52ebaa925ea05b3e178ed3bb4dbf87be29f2"
16721672
},
16731673
"dist": {
16741674
"type": "zip",
1675-
"url": "https://api.github.com/repos/staabm/phpstan-dba/zipball/b32c279fcb7e9fa0c30a3aedc1f4b4913dac14f1",
1676-
"reference": "b32c279fcb7e9fa0c30a3aedc1f4b4913dac14f1",
1675+
"url": "https://api.github.com/repos/staabm/phpstan-dba/zipball/6dac52ebaa925ea05b3e178ed3bb4dbf87be29f2",
1676+
"reference": "6dac52ebaa925ea05b3e178ed3bb4dbf87be29f2",
16771677
"shasum": ""
16781678
},
16791679
"require": {
@@ -1699,7 +1699,7 @@
16991699
"symplify/easy-coding-standard": "^12.3",
17001700
"vlucas/phpdotenv": "^5.4"
17011701
},
1702-
"time": "2024-11-17T08:36:10+00:00",
1702+
"time": "2024-11-26T21:46:03+00:00",
17031703
"type": "phpstan-extension",
17041704
"extra": {
17051705
"phpstan": {
@@ -1731,7 +1731,7 @@
17311731
],
17321732
"support": {
17331733
"issues": "https://github.com/staabm/phpstan-dba/issues",
1734-
"source": "https://github.com/staabm/phpstan-dba/tree/0.3"
1734+
"source": "https://github.com/staabm/phpstan-dba/tree/0.3.1"
17351735
},
17361736
"funding": [
17371737
{

vendor/composer/installed.php

+5-5
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
'name' => '__root__',
44
'pretty_version' => 'dev-main',
55
'version' => 'dev-main',
6-
'reference' => '93518c4c6084a1f9d57a657c7ec6c245fc363f7a',
6+
'reference' => 'b7b1d7a5e2bd226335c852d34fbc9c099d45acce',
77
'type' => 'library',
88
'install_path' => __DIR__ . '/../../',
99
'aliases' => array(),
@@ -13,7 +13,7 @@
1313
'__root__' => array(
1414
'pretty_version' => 'dev-main',
1515
'version' => 'dev-main',
16-
'reference' => '93518c4c6084a1f9d57a657c7ec6c245fc363f7a',
16+
'reference' => 'b7b1d7a5e2bd226335c852d34fbc9c099d45acce',
1717
'type' => 'library',
1818
'install_path' => __DIR__ . '/../../',
1919
'aliases' => array(),
@@ -248,9 +248,9 @@
248248
'dev_requirement' => false,
249249
),
250250
'staabm/phpstan-dba' => array(
251-
'pretty_version' => '0.3',
252-
'version' => '0.3.0.0',
253-
'reference' => 'b32c279fcb7e9fa0c30a3aedc1f4b4913dac14f1',
251+
'pretty_version' => '0.3.1',
252+
'version' => '0.3.1.0',
253+
'reference' => '6dac52ebaa925ea05b3e178ed3bb4dbf87be29f2',
254254
'type' => 'phpstan-extension',
255255
'install_path' => __DIR__ . '/../staabm/phpstan-dba',
256256
'aliases' => array(),

vendor/staabm/phpstan-dba/src/DoctrineReflection/DoctrineReflection.php

+35-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
namespace staabm\PHPStanDba\DoctrineReflection;
66

77
use PHPStan\Reflection\MethodReflection;
8+
use PHPStan\Type\Accessory\AccessoryArrayListType;
89
use PHPStan\Type\ArrayType;
910
use PHPStan\Type\Constant\ConstantArrayTypeBuilder;
1011
use PHPStan\Type\Constant\ConstantBooleanType;
@@ -43,6 +44,7 @@ public function reduceResultType(MethodReflection $methodReflection, Type $resul
4344

4445
$usedMethod = strtolower($methodReflection->getName());
4546

47+
$returnsList = false;
4648
switch ($usedMethod) {
4749
case 'fetchallkeyvalue':
4850
case 'iteratekeyvalue':
@@ -52,16 +54,25 @@ public function reduceResultType(MethodReflection $methodReflection, Type $resul
5254
$fetchType = QueryReflector::FETCH_TYPE_ONE;
5355
break;
5456
case 'fetchfirstcolumn':
57+
$returnsList = true;
58+
$fetchType = QueryReflector::FETCH_TYPE_FIRST_COL;
59+
break;
5560
case 'iteratecolumn':
5661
$fetchType = QueryReflector::FETCH_TYPE_FIRST_COL;
5762
break;
5863
case 'fetchnumeric':
5964
case 'fetchallnumeric':
65+
$returnsList = true;
66+
$fetchType = QueryReflector::FETCH_TYPE_NUMERIC;
67+
break;
6068
case 'iteratenumeric':
6169
$fetchType = QueryReflector::FETCH_TYPE_NUMERIC;
6270
break;
63-
case 'fetchassociative':
6471
case 'fetchallassociative':
72+
$returnsList = true;
73+
$fetchType = QueryReflector::FETCH_TYPE_ASSOC;
74+
break;
75+
case 'fetchassociative':
6576
case 'iterateassociative':
6677
$fetchType = QueryReflector::FETCH_TYPE_ASSOC;
6778
break;
@@ -99,7 +110,14 @@ public function reduceResultType(MethodReflection $methodReflection, Type $resul
99110
return new GenericObjectType(Traversable::class, [new IntegerType(), $valueTypes[$i]]);
100111
}
101112

102-
return new ArrayType(IntegerRangeType::fromInterval(0, null), $valueTypes[$i]);
113+
$arrayType = new ArrayType(IntegerRangeType::fromInterval(0, null), $valueTypes[$i]);
114+
if ($returnsList) {
115+
return TypeCombinator::intersect(
116+
$arrayType,
117+
new AccessoryArrayListType()
118+
);
119+
}
120+
return $arrayType;
103121
}
104122

105123
if (QueryReflector::FETCH_TYPE_NUMERIC === $fetchType && $keyType->isInteger()->yes()) {
@@ -116,7 +134,21 @@ public function reduceResultType(MethodReflection $methodReflection, Type $resul
116134
}
117135

118136
if (\in_array($usedMethod, ['fetchallnumeric', 'fetchallassociative'], true)) {
119-
return new ArrayType(IntegerRangeType::fromInterval(0, null), $resultType);
137+
$arrayType = new ArrayType(IntegerRangeType::fromInterval(0, null), $resultType);
138+
if ($returnsList) {
139+
return TypeCombinator::intersect(
140+
$arrayType,
141+
new AccessoryArrayListType()
142+
);
143+
}
144+
return $arrayType;
145+
}
146+
147+
if ($returnsList) {
148+
$resultType = TypeCombinator::intersect(
149+
$resultType,
150+
new AccessoryArrayListType()
151+
);
120152
}
121153

122154
// false is returned if no rows are found.

0 commit comments

Comments
 (0)