]> granicus.if.org Git - php/commitdiff
gen_stub: Compare phpdoc return type in --verify
authorNikita Popov <nikita.ppv@gmail.com>
Mon, 18 Jan 2021 13:41:27 +0000 (14:41 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Mon, 18 Jan 2021 13:41:53 +0000 (14:41 +0100)
build/gen_stub.php

index c765102999ea84ed7ef11326410062e479811f66..ee19f57a0cae4c03bcac0076d8f0dfaa5e0079a4 100755 (executable)
@@ -1932,11 +1932,12 @@ if ($verify) {
             $aliasArgs, $aliasedArgs
         );
 
-        if ((!$aliasedFunc->isMethod() || $aliasedFunc->isFinalMethod()) &&
-            (!$aliasFunc->isMethod() || $aliasFunc->isFinalMethod()) &&
-            $aliasFunc->return != $aliasedFunc->return
-        ) {
-            $errors[] = "{$aliasFunc->name}() and {$aliasedFunc->name}() must have the same return type";
+        if (!$aliasedFunc->name->isConstructor() && !$aliasFunc->name->isConstructor()) {
+            $aliasedReturnType = $aliasedFunc->return->type ?? $aliasedFunc->return->phpDocType;
+            $aliasReturnType = $aliasFunc->return->type ?? $aliasFunc->return->phpDocType;
+            if ($aliasReturnType != $aliasedReturnType) {
+                $errors[] = "{$aliasFunc->name}() and {$aliasedFunc->name}() must have the same return type";
+            }
         }
     }