@@ -106,8 +106,13 @@ public function getTypeFromFunctionCall(FunctionReflection $functionReflection,
106
106
} elseif ($ callbackArg instanceof ArrowFunction && count ($ callbackArg ->params ) > 0 ) {
107
107
return $ this ->filterByTruthyValue ($ scope , null , $ arrayArgType , $ callbackArg ->params [0 ]->var , $ callbackArg ->expr );
108
108
} elseif ($ callbackArg instanceof String_) {
109
+ $ funcName = self ::createFunctionName ($ callbackArg ->value );
110
+ if ($ funcName === null ) {
111
+ return new ErrorType ();
112
+ }
113
+
109
114
$ keyVar = new Variable ('key ' );
110
- $ expr = new FuncCall (self :: createFunctionName ( $ callbackArg -> value ) , [new Arg ($ keyVar )]);
115
+ $ expr = new FuncCall ($ funcName , [new Arg ($ keyVar )]);
111
116
return $ this ->filterByTruthyValue ($ scope , null , $ arrayArgType , $ keyVar , $ expr );
112
117
}
113
118
}
@@ -121,9 +126,14 @@ public function getTypeFromFunctionCall(FunctionReflection $functionReflection,
121
126
} elseif ($ callbackArg instanceof ArrowFunction && count ($ callbackArg ->params ) > 0 ) {
122
127
return $ this ->filterByTruthyValue ($ scope , $ callbackArg ->params [0 ]->var , $ arrayArgType , $ callbackArg ->params [1 ]->var ?? null , $ callbackArg ->expr );
123
128
} elseif ($ callbackArg instanceof String_) {
129
+ $ funcName = self ::createFunctionName ($ callbackArg ->value );
130
+ if ($ funcName === null ) {
131
+ return new ErrorType ();
132
+ }
133
+
124
134
$ itemVar = new Variable ('item ' );
125
135
$ keyVar = new Variable ('key ' );
126
- $ expr = new FuncCall (self :: createFunctionName ( $ callbackArg -> value ) , [new Arg ($ itemVar ), new Arg ($ keyVar )]);
136
+ $ expr = new FuncCall ($ funcName , [new Arg ($ itemVar ), new Arg ($ keyVar )]);
127
137
return $ this ->filterByTruthyValue ($ scope , $ itemVar , $ arrayArgType , $ keyVar , $ expr );
128
138
}
129
139
}
0 commit comments