@@ -2601,7 +2601,8 @@ static function (): void {
2601
2601
2602
2602
if ($ parametersAcceptor !== null ) {
2603
2603
$ expr = ArgumentsNormalizer::reorderFuncArguments ($ parametersAcceptor , $ expr ) ?? $ expr ;
2604
- $ isAlwaysTerminating = $ parametersAcceptor ->getReturnType () instanceof NeverType;
2604
+ $ returnType = $ parametersAcceptor ->getReturnType ();
2605
+ $ isAlwaysTerminating = $ returnType instanceof NeverType && $ returnType ->isExplicit ();
2605
2606
}
2606
2607
$ result = $ this ->processArgs ($ stmt , $ functionReflection , null , $ parametersAcceptor , $ expr , $ scope , $ nodeCallback , $ context );
2607
2608
$ scope = $ result ->getScope ();
@@ -2857,7 +2858,8 @@ static function (): void {
2857
2858
2858
2859
if ($ parametersAcceptor !== null ) {
2859
2860
$ expr = ArgumentsNormalizer::reorderMethodArguments ($ parametersAcceptor , $ expr ) ?? $ expr ;
2860
- $ isAlwaysTerminating = $ parametersAcceptor ->getReturnType () instanceof NeverType;
2861
+ $ returnType = $ parametersAcceptor ->getReturnType ();
2862
+ $ isAlwaysTerminating = $ returnType instanceof NeverType && $ returnType ->isExplicit ();
2861
2863
}
2862
2864
2863
2865
$ result = $ this ->processArgs (
@@ -3044,7 +3046,8 @@ static function (): void {
3044
3046
3045
3047
if ($ parametersAcceptor !== null ) {
3046
3048
$ expr = ArgumentsNormalizer::reorderStaticCallArguments ($ parametersAcceptor , $ expr ) ?? $ expr ;
3047
- $ isAlwaysTerminating = $ parametersAcceptor ->getReturnType () instanceof NeverType;
3049
+ $ returnType = $ parametersAcceptor ->getReturnType ();
3050
+ $ isAlwaysTerminating = $ returnType instanceof NeverType && $ returnType ->isExplicit ();
3048
3051
}
3049
3052
$ result = $ this ->processArgs ($ stmt , $ methodReflection , null , $ parametersAcceptor , $ expr , $ scope , $ nodeCallback , $ context , $ closureBindScope ?? null );
3050
3053
$ scope = $ result ->getScope ();
0 commit comments