@@ -2601,7 +2601,8 @@ static function (): void {
26012601
26022602 if ($ parametersAcceptor !== null ) {
26032603 $ expr = ArgumentsNormalizer::reorderFuncArguments ($ parametersAcceptor , $ expr ) ?? $ expr ;
2604- $ isAlwaysTerminating = $ parametersAcceptor ->getReturnType () instanceof NeverType;
2604+ $ returnType = $ parametersAcceptor ->getReturnType ();
2605+ $ isAlwaysTerminating = $ returnType instanceof NeverType && $ returnType ->isExplicit ();
26052606 }
26062607 $ result = $ this ->processArgs ($ stmt , $ functionReflection , null , $ parametersAcceptor , $ expr , $ scope , $ nodeCallback , $ context );
26072608 $ scope = $ result ->getScope ();
@@ -2858,7 +2859,8 @@ static function (): void {
28582859
28592860 if ($ parametersAcceptor !== null ) {
28602861 $ expr = ArgumentsNormalizer::reorderMethodArguments ($ parametersAcceptor , $ expr ) ?? $ expr ;
2861- $ isAlwaysTerminating = $ parametersAcceptor ->getReturnType () instanceof NeverType;
2862+ $ returnType = $ parametersAcceptor ->getReturnType ();
2863+ $ isAlwaysTerminating = $ returnType instanceof NeverType && $ returnType ->isExplicit ();
28622864 }
28632865
28642866 $ result = $ this ->processArgs (
@@ -3045,7 +3047,8 @@ static function (): void {
30453047
30463048 if ($ parametersAcceptor !== null ) {
30473049 $ expr = ArgumentsNormalizer::reorderStaticCallArguments ($ parametersAcceptor , $ expr ) ?? $ expr ;
3048- $ isAlwaysTerminating = $ parametersAcceptor ->getReturnType () instanceof NeverType;
3050+ $ returnType = $ parametersAcceptor ->getReturnType ();
3051+ $ isAlwaysTerminating = $ returnType instanceof NeverType && $ returnType ->isExplicit ();
30493052 }
30503053 $ result = $ this ->processArgs ($ stmt , $ methodReflection , null , $ parametersAcceptor , $ expr , $ scope , $ nodeCallback , $ context , $ closureBindScope ?? null );
30513054 $ scope = $ result ->getScope ();
0 commit comments