File tree Expand file tree Collapse file tree 2 files changed +9
-0
lines changed
rules/TypeDeclaration/NodeAnalyzer Expand file tree Collapse file tree 2 files changed +9
-0
lines changed Original file line number Diff line number Diff line change @@ -68,6 +68,9 @@ parameters:
6868 # phpstan class constant value
6969 - identifier : phpstanApi.classConstant
7070
71+ # phpstan class construction
72+ - identifier : phpstanApi.constructor
73+
7174 # phpstan instanceof
7275 - identifier : phpstanApi.instanceofAssumption
7376
Original file line number Diff line number Diff line change 1818use PHPStan \Reflection \Php \PhpPropertyReflection ;
1919use PHPStan \Type \MixedType ;
2020use PHPStan \Type \NeverType ;
21+ use PHPStan \Type \StrictMixedType ;
2122use PHPStan \Type \Type ;
2223use Rector \NodeTypeResolver \NodeTypeResolver ;
2324use Rector \NodeTypeResolver \PHPStan \ParametersAcceptorSelectorVariantsWrapper ;
@@ -197,6 +198,11 @@ private function isPropertyAssignSafe(Assign $assign): bool
197198
198199 private function isTypeSafeForStrictMode (Type $ declaredType , Type $ valueType ): bool
199200 {
201+ // need to be strict with mixed to avoid false positives
202+ if ($ valueType instanceof MixedType) {
203+ $ valueType = new StrictMixedType ();
204+ }
205+
200206 return $ declaredType ->accepts ($ valueType , strictTypes: true )
201207 ->yes ();
202208 }
You can’t perform that action at this time.
0 commit comments