@@ -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 ();
@@ -2858,7 +2859,8 @@ static function (): void {
2858
2859
2859
2860
if ($ parametersAcceptor !== null ) {
2860
2861
$ expr = ArgumentsNormalizer::reorderMethodArguments ($ parametersAcceptor , $ expr ) ?? $ expr ;
2861
- $ isAlwaysTerminating = $ parametersAcceptor ->getReturnType () instanceof NeverType;
2862
+ $ returnType = $ parametersAcceptor ->getReturnType ();
2863
+ $ isAlwaysTerminating = $ returnType instanceof NeverType && $ returnType ->isExplicit ();
2862
2864
}
2863
2865
2864
2866
$ result = $ this ->processArgs (
@@ -3045,7 +3047,8 @@ static function (): void {
3045
3047
3046
3048
if ($ parametersAcceptor !== null ) {
3047
3049
$ expr = ArgumentsNormalizer::reorderStaticCallArguments ($ parametersAcceptor , $ expr ) ?? $ expr ;
3048
- $ isAlwaysTerminating = $ parametersAcceptor ->getReturnType () instanceof NeverType;
3050
+ $ returnType = $ parametersAcceptor ->getReturnType ();
3051
+ $ isAlwaysTerminating = $ returnType instanceof NeverType && $ returnType ->isExplicit ();
3049
3052
}
3050
3053
$ result = $ this ->processArgs ($ stmt , $ methodReflection , null , $ parametersAcceptor , $ expr , $ scope , $ nodeCallback , $ context , $ closureBindScope ?? null );
3051
3054
$ scope = $ result ->getScope ();
0 commit comments