Skip to content

Commit e5dfb84

Browse files
staabmclxmstaab
andauthored
added MysqliResultObjectType (#327)
Co-authored-by: Markus Staab <[email protected]>
1 parent 629d03e commit e5dfb84

File tree

2 files changed

+19
-3
lines changed

2 files changed

+19
-3
lines changed

src/Extensions/MysqliQueryDynamicReturnTypeExtension.php

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
namespace staabm\PHPStanDba\Extensions;
66

77
use mysqli;
8-
use mysqli_result;
98
use PhpParser\Node\Expr;
109
use PhpParser\Node\Expr\FuncCall;
1110
use PhpParser\Node\Expr\MethodCall;
@@ -17,10 +16,10 @@
1716
use PHPStan\Type\Constant\ConstantBooleanType;
1817
use PHPStan\Type\DynamicFunctionReturnTypeExtension;
1918
use PHPStan\Type\DynamicMethodReturnTypeExtension;
20-
use PHPStan\Type\Generic\GenericObjectType;
2119
use PHPStan\Type\MixedType;
2220
use PHPStan\Type\Type;
2321
use PHPStan\Type\TypeCombinator;
22+
use staabm\PHPStanDba\MysqliReflection\MysqliResultObjectType;
2423
use staabm\PHPStanDba\QueryReflection\QueryReflection;
2524
use staabm\PHPStanDba\QueryReflection\QueryReflector;
2625

@@ -110,7 +109,7 @@ private function inferResultType(Expr $queryExpr, Scope $scope): ?Type
110109
return null;
111110
}
112111

113-
$genericObjects[] = new GenericObjectType(mysqli_result::class, [$resultType]);
112+
$genericObjects[] = new MysqliResultObjectType($resultType);
114113
}
115114

116115
if (0 === \count($genericObjects)) {
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace staabm\PHPStanDba\MysqliReflection;
6+
7+
use mysqli_result;
8+
use PHPStan\Type\Generic\GenericObjectType;
9+
use PHPStan\Type\Type;
10+
11+
final class MysqliResultObjectType extends GenericObjectType
12+
{
13+
public function __construct(Type $rowType)
14+
{
15+
parent::__construct(mysqli_result::class, [$rowType]);
16+
}
17+
}

0 commit comments

Comments
 (0)