]> granicus.if.org Git - php/commitdiff
Annotate internal functions with the mixed type
authorMáté Kocsis <kocsismate@woohoolabs.com>
Mon, 25 May 2020 15:30:49 +0000 (17:30 +0200)
committerMáté Kocsis <kocsismate@woohoolabs.com>
Mon, 25 May 2020 15:30:57 +0000 (17:30 +0200)
Closes GH-5618

23 files changed:
Zend/zend_builtin_functions.stub.php
Zend/zend_builtin_functions_arginfo.h
Zend/zend_closures.stub.php
Zend/zend_closures_arginfo.h
Zend/zend_generators.stub.php
Zend/zend_generators_arginfo.h
build/gen_stub.php
ext/filter/filter.stub.php
ext/filter/filter_arginfo.h
ext/json/json.stub.php
ext/json/json_arginfo.h
ext/mysqli/mysqli.stub.php
ext/mysqli/mysqli_arginfo.h
ext/opcache/Optimizer/zend_func_info.c
ext/pdo/pdo_dbh.stub.php
ext/reflection/php_reflection.stub.php
ext/reflection/php_reflection_arginfo.h
ext/standard/basic_functions.stub.php
ext/standard/basic_functions_arginfo.h
ext/xmlrpc/xmlrpc.stub.php
ext/xmlrpc/xmlrpc_arginfo.h
ext/zend_test/test.stub.php
ext/zend_test/test_arginfo.h

index 9dfaf64ca5afd1397c83129abc9c536127809dfa..9e5078f14a9c91ed19e3cdfd3d5fb0544e190063 100644 (file)
@@ -6,8 +6,7 @@ function zend_version(): string {}
 
 function func_num_args(): int {}
 
-/** @return mixed */
-function func_get_arg(int $arg_num) {}
+function func_get_arg(int $arg_num): mixed {}
 
 function func_get_args(): array {}
 
@@ -69,12 +68,12 @@ function trigger_error(string $message, int $error_type = E_USER_NOTICE): bool {
 /** @alias trigger_error */
 function user_error(string $message, int $error_type = E_USER_NOTICE): bool {}
 
-/** @return mixed */
+/** @return string|array|object|null */
 function set_error_handler($error_handler, int $error_types = E_ALL) {}
 
 function restore_error_handler(): bool {}
 
-/** @return mixed */
+/** @return string|array|object|null */
 function set_exception_handler($exception_handler) {}
 
 function restore_exception_handler(): bool {}
index 728a76cdee19e10aa9ed264e1f7a0e23e8eb3c4c..0fa4ba7f458549151b559194b19cf3c18716ce7d 100644 (file)
@@ -6,7 +6,7 @@ ZEND_END_ARG_INFO()
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_func_num_args, 0, 0, IS_LONG, 0)
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_func_get_arg, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_func_get_arg, 0, 1, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO(0, arg_num, IS_LONG, 0)
 ZEND_END_ARG_INFO()
 
index 75202c5df77952256e9b0eeb09e25c7c996eb092..9cc298eee072aeca181c053f91bc4496529d4f10 100644 (file)
@@ -11,8 +11,7 @@ final class Closure
     /** @alias Closure::bind */
     public function bindTo(?object $newthis, $newscope = UNKNOWN): ?Closure {}
 
-    /** @return mixed */
-    public function call(object $newthis, ...$parameters) {}
+    public function call(object $newthis, mixed ...$parameters): mixed {}
 
     /** @param callable $callable Not a proper type annotation due to bug #78770 */
     public static function fromCallable($callable): Closure {}
index a1eddd7bc13819e443e755ba91553a469e840b2c..85802bbfb4cd7f6b235dc33fdc57c995bc89db05 100644 (file)
@@ -14,9 +14,9 @@ ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_Closure_bindTo, 0, 1, Closu
        ZEND_ARG_INFO(0, newscope)
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Closure_call, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_Closure_call, 0, 1, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO(0, newthis, IS_OBJECT, 0)
-       ZEND_ARG_VARIADIC_INFO(0, parameters)
+       ZEND_ARG_VARIADIC_TYPE_INFO(0, parameters, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_class_Closure_fromCallable, 0, 1, Closure, 0)
index 5fb485895c59631433de3236d8bfbd1e9f73acbe..f2e47616bad1d3caaec98a725b01af5025420d77 100644 (file)
@@ -8,20 +8,15 @@ final class Generator implements Iterator
 
     public function valid(): bool {}
 
-    /** @return mixed */
-    public function current() {}
+    public function current(): mixed {}
 
-    /** @return mixed */
-    public function key() {}
+    public function key(): mixed {}
 
     public function next(): void {}
 
-    /** @return mixed */
-    public function send($value) {}
+    public function send(mixed $value): mixed {}
 
-    /** @return mixed */
-    public function throw(Throwable $exception) {}
+    public function throw(Throwable $exception): mixed {}
 
-    /** @return mixed */
-    public function getReturn() {}
+    public function getReturn(): mixed {}
 }
index 214595e580adf0c31e87ea46551eddcafa812623..c87ef2c93702a8744868d1d5132b87e93f330d07 100644 (file)
@@ -6,18 +6,18 @@ ZEND_END_ARG_INFO()
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_Generator_valid, 0, 0, _IS_BOOL, 0)
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Generator_current, 0, 0, 0)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_Generator_current, 0, 0, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 #define arginfo_class_Generator_key arginfo_class_Generator_current
 
 #define arginfo_class_Generator_next arginfo_class_Generator_rewind
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Generator_send, 0, 0, 1)
-       ZEND_ARG_INFO(0, value)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_Generator_send, 0, 1, IS_MIXED, 0)
+       ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_class_Generator_throw, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_class_Generator_throw, 0, 1, IS_MIXED, 0)
        ZEND_ARG_OBJ_INFO(0, exception, Throwable, 0)
 ZEND_END_ARG_INFO()
 
index 484645221915c05d3c4cc699255acb43391a0576..eb00b34136459f5311456a0a5d67aa5cd239b5c4 100755 (executable)
@@ -65,6 +65,10 @@ class SimpleType {
 
     public static function fromNode(Node $node) {
         if ($node instanceof Node\Name) {
+            if ($node->toString() === "mixed") {
+                return new SimpleType($node->toString(), true);
+            }
+
             assert($node->isFullyQualified());
             return new SimpleType($node->toString(), false);
         }
@@ -97,6 +101,8 @@ class SimpleType {
             return "IS_VOID";
         case "callable":
             return "IS_CALLABLE";
+        case "mixed":
+            return "IS_MIXED";
         default:
             throw new Exception("Not implemented: $this->name");
         }
@@ -123,6 +129,8 @@ class SimpleType {
             return "MAY_BE_OBJECT";
         case "callable":
             return "MAY_BE_CALLABLE";
+        case "mixed":
+            return "MAY_BE_ANY";
         default:
             throw new Exception("Not implemented: $this->name");
         }
@@ -637,8 +645,11 @@ function parseFunctionLike(
             $param->default->name->toLowerString() === "null" &&
             $type && !$type->isNullable()
         ) {
-            throw new Exception(
-                "Parameter $varName of function $name has null default, but is not nullable");
+            $simpleType = $type->tryToSimpleType();
+            if ($simpleType === null || $simpleType->name !== "mixed") {
+                throw new Exception(
+                    "Parameter $varName of function $name has null default, but is not nullable");
+            }
         }
 
         $foundVariadic = $param->variadic;
index 0923b9ba16434e57adc25828f65142bff0bdb389..e8e6b0fbdd097ce5c2e11ac141b84245d16fdea9 100644 (file)
@@ -4,30 +4,17 @@
 
 function filter_has_var(int $type, string $variable_name): bool {}
 
-/**
- * @param mixed $options
- * @return mixed
- */
-function filter_input(int $type, string $variable_name, int $filter = FILTER_DEFAULT, $options = null) {}
-
-/**
- * @param mixed $variable
- * @param mixed $options
- * @return mixed
- */
-function filter_var($variable, int $filter = FILTER_DEFAULT, $options = null) {}
-
-/**
- * @param mixed $options
- * @return mixed
- */
-function filter_input_array(int $type, $options = FILTER_DEFAULT, bool $add_empty = true) {}
-
-/**
- * @param mixed $options
- * @return mixed
- */
-function filter_var_array(array $data, $options = FILTER_DEFAULT, bool $add_empty = true) {}
+/** @param array|int $options */
+function filter_input(int $type, string $variable_name, int $filter = FILTER_DEFAULT, $options = null): mixed {}
+
+/** @param array|int $options */
+function filter_var(mixed $variable, int $filter = FILTER_DEFAULT, $options = null): mixed {}
+
+/** @param array|int $options */
+function filter_input_array(int $type, $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null {}
+
+/** @param array|int $options */
+function filter_var_array(array $data, $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null {}
 
 function filter_list(): array {}
 
index 8e2e2763cd34e427633e853ee8da0868bda2368e..bf615fc847dea4975435dc8f9d5bd84509c58df4 100644 (file)
@@ -5,26 +5,26 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_filter_has_var, 0, 2, _IS_BOOL,
        ZEND_ARG_TYPE_INFO(0, variable_name, IS_STRING, 0)
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_filter_input, 0, 0, 2)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_filter_input, 0, 2, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO(0, type, IS_LONG, 0)
        ZEND_ARG_TYPE_INFO(0, variable_name, IS_STRING, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, filter, IS_LONG, 0, "FILTER_DEFAULT")
        ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, options, "null")
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_filter_var, 0, 0, 1)
-       ZEND_ARG_INFO(0, variable)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_filter_var, 0, 1, IS_MIXED, 0)
+       ZEND_ARG_TYPE_INFO(0, variable, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, filter, IS_LONG, 0, "FILTER_DEFAULT")
        ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, options, "null")
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_filter_input_array, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_filter_input_array, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE|MAY_BE_NULL)
        ZEND_ARG_TYPE_INFO(0, type, IS_LONG, 0)
        ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, options, "FILTER_DEFAULT")
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, add_empty, _IS_BOOL, 0, "true")
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_filter_var_array, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_filter_var_array, 0, 1, MAY_BE_ARRAY|MAY_BE_FALSE|MAY_BE_NULL)
        ZEND_ARG_TYPE_INFO(0, data, IS_ARRAY, 0)
        ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, options, "FILTER_DEFAULT")
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, add_empty, _IS_BOOL, 0, "true")
index 406bd8a87c86936cdb1277f002323946c84ffc62..fc7d2c1569c0f948c18bd38c8d4ed9eaf9bdef73 100644 (file)
@@ -2,10 +2,9 @@
 
 /** @generate-function-entries */
 
-function json_encode($value, int $options = 0, int $depth = 512): string|false {}
+function json_encode(mixed $value, int $options = 0, int $depth = 512): string|false {}
 
-/** @return mixed */
-function json_decode(string $json, ?bool $assoc = null, int $depth = 512, int $options = 0) {}
+function json_decode(string $json, ?bool $assoc = null, int $depth = 512, int $options = 0): mixed {}
 
 function json_last_error(): int {}
 
index 3cc3bbbba8f3afd87351b8c0ba1415685896ebd0..9514abf19f5f65b3d910f9f78b2df9b352b1ce84 100644 (file)
@@ -1,12 +1,12 @@
 /* This is a generated file, edit the .stub.php file instead. */
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_json_encode, 0, 1, MAY_BE_STRING|MAY_BE_FALSE)
-       ZEND_ARG_INFO(0, value)
+       ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_LONG, 0, "0")
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, depth, IS_LONG, 0, "512")
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_json_decode, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_json_decode, 0, 1, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO(0, json, IS_STRING, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, assoc, _IS_BOOL, 1, "null")
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, depth, IS_LONG, 0, "512")
index fe581a37236650fd09d3968f1ce9c83490116f27..786796b89246b2a311aa884634040fa67e986357 100644 (file)
@@ -407,7 +407,7 @@ class mysqli_stmt
      * @return bool
      * @alias mysqli_stmt_bind_param
      */
-    public function bind_param(string $types, &...$vars) {}
+    public function bind_param(string $types, mixed &...$vars) {}
 
     /**
      * @return bool
@@ -681,8 +681,7 @@ function mysqli_stmt_attr_get(mysqli_stmt $mysql_stmt, int $attr): int|false {}
 
 function mysqli_stmt_attr_set(mysqli_stmt $mysql_stmt, int $attr, int $mode_in): bool {}
 
-/** @param mixed &...$vars */
-function mysqli_stmt_bind_param(mysqli_stmt $mysql_stmt, string $types, &...$vars): bool {}
+function mysqli_stmt_bind_param(mysqli_stmt $mysql_stmt, string $types, mixed &...$vars): bool {}
 
 /** @param mixed &...$vars */
 function mysqli_stmt_bind_result(mysqli_stmt $mysql_stmt, &...$vars): bool {}
index f42ce8611f0b6586be9046ce184b1f04d75bed5d..7145ed562444f106696783a9c12895d930c3f90b 100644 (file)
@@ -298,7 +298,7 @@ ZEND_END_ARG_INFO()
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_stmt_bind_param, 0, 2, _IS_BOOL, 0)
        ZEND_ARG_OBJ_INFO(0, mysql_stmt, mysqli_stmt, 0)
        ZEND_ARG_TYPE_INFO(0, types, IS_STRING, 0)
-       ZEND_ARG_VARIADIC_INFO(1, vars)
+       ZEND_ARG_VARIADIC_TYPE_INFO(1, vars, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_mysqli_stmt_bind_result, 0, 1, _IS_BOOL, 0)
@@ -633,7 +633,7 @@ ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_stmt_bind_param, 0, 0, 1)
        ZEND_ARG_TYPE_INFO(0, types, IS_STRING, 0)
-       ZEND_ARG_VARIADIC_INFO(1, vars)
+       ZEND_ARG_VARIADIC_TYPE_INFO(1, vars, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_mysqli_stmt_bind_result, 0, 0, 0)
index ff29cce9896a8915fea731c1a4e1d42c3a320f54..6d77938025bf35609a893cc5dd9abe8246edc575 100644 (file)
@@ -214,7 +214,7 @@ static const func_info_t func_infos[] = {
        F1("password_get_info",            MAY_BE_NULL | MAY_BE_ARRAY | MAY_BE_ARRAY_KEY_STRING | MAY_BE_ARRAY_OF_LONG | MAY_BE_ARRAY_OF_STRING | MAY_BE_ARRAY_OF_ARRAY),
        F1("convert_uuencode",             MAY_BE_FALSE | MAY_BE_STRING),
        F1("convert_uudecode",             MAY_BE_FALSE | MAY_BE_STRING),
-       F1("pow",                          MAY_BE_NULL | MAY_BE_LONG | MAY_BE_DOUBLE | MAY_BE_OBJECT),
+       F1("pow",                          MAY_BE_LONG | MAY_BE_DOUBLE | MAY_BE_OBJECT),
        F1("decbin",                       MAY_BE_STRING),
        F1("decoct",                       MAY_BE_STRING),
        F1("dechex",                       MAY_BE_STRING),
index e0ecf122ffc55ef93513ba301f58f508f87efc3b..dec3cea0ea54f7f42f1cdaeb34284b37972fb649 100644 (file)
@@ -21,7 +21,7 @@ class PDO
     /** @return int|false */
     public function exec(string $statement) {}
 
-    /** @return mixed */
+    /** @return bool|int|string|array|null */
     public function getAttribute(int $attribute) {}
 
     /** @return array */
index e629b8d845b2558f5b7ea008ee2130985b9e030a..30627475073b45f0f8acc9cea0d06024c5e69d4b 100644 (file)
@@ -111,7 +111,7 @@ class ReflectionFunction extends ReflectionFunctionAbstract
     public function isDisabled() {}
 
     /** @return mixed */
-    public function invoke(...$args) {}
+    public function invoke(mixed ...$args) {}
 
     /** @return mixed */
     public function invokeArgs(array $args) {}
@@ -181,7 +181,7 @@ class ReflectionMethod extends ReflectionFunctionAbstract
     public function getModifiers() {}
 
     /** @return mixed */
-    public function invoke(?object $object = null, ...$args) {}
+    public function invoke(?object $object = null, mixed ...$args) {}
 
     /** @return mixed */
     public function invokeArgs(?object $object, array $args) {}
index 91e9c4cada36d32d54201efcb36ae9f8eb48d1f8..1e3e9988deee028c5fa3ba236cd9c8019358c8a8 100644 (file)
@@ -67,7 +67,7 @@ ZEND_END_ARG_INFO()
 #define arginfo_class_ReflectionFunction_isDisabled arginfo_class_ReflectionFunctionAbstract___clone
 
 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionFunction_invoke, 0, 0, 0)
-       ZEND_ARG_VARIADIC_INFO(0, args)
+       ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionFunction_invokeArgs, 0, 0, 1)
@@ -125,7 +125,7 @@ ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionMethod_invoke, 0, 0, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, object, IS_OBJECT, 1, "null")
-       ZEND_ARG_VARIADIC_INFO(0, args)
+       ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionMethod_invokeArgs, 0, 0, 2)
@@ -221,7 +221,9 @@ ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionClass_isInstance, 0, 0, 1)
        ZEND_ARG_TYPE_INFO(0, object, IS_OBJECT, 0)
 ZEND_END_ARG_INFO()
 
-#define arginfo_class_ReflectionClass_newInstance arginfo_class_ReflectionFunction_invoke
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_ReflectionClass_newInstance, 0, 0, 0)
+       ZEND_ARG_VARIADIC_INFO(0, args)
+ZEND_END_ARG_INFO()
 
 #define arginfo_class_ReflectionClass_newInstanceWithoutConstructor arginfo_class_ReflectionFunctionAbstract___clone
 
index 21c711111e15fae1dd6945b8844d5a55cd52eaec..85f12984aa4f8224c775fc2aa909ffb761ed43e3 100755 (executable)
@@ -64,11 +64,11 @@ function krsort(array &$arg, int $sort_flags = SORT_REGULAR): bool {}
 
 function ksort(array &$arg, int $sort_flags = SORT_REGULAR): bool {}
 
-/** @param mixed $var */
+/** @param array|Countable|null $var */
 function count($var, int $mode = COUNT_NORMAL): int {}
 
 /**
- * @param mixed $var
+ * @param array|object|null $var
  * @alias count
  */
 function sizeof($var, int $mode = COUNT_NORMAL): int {}
@@ -91,34 +91,24 @@ function uasort(array &$arg, callable $cmp_function): bool {}
 
 function uksort(array &$arg, callable $cmp_function): bool {}
 
-/** @return mixed */
-function end(array|object &$arg) {}
+function end(array|object &$arg): mixed {}
 
-/** @return mixed */
-function prev(array|object &$arg) {}
+function prev(array|object &$arg): mixed {}
 
-/** @return mixed */
-function next(array|object &$arg) {}
+function next(array|object &$arg): mixed {}
 
-/** @return mixed */
-function reset(array|object &$arg) {}
+function reset(array|object &$arg): mixed {}
 
-/** @return mixed */
-function current(array|object $arg) {}
+function current(array|object $arg): mixed {}
 
-/**
- * @return mixed
- * @alias current
- */
-function pos(array|object $arg) {}
+/** @alias current */
+function pos(array|object $arg): mixed {}
 
 function key(array|object $arg): int|string|null {}
 
-/** @return mixed */
-function min($arg, ...$args) {}
+function min($arg, mixed ...$args): mixed {}
 
-/** @return mixed */
-function max($arg, ...$args) {}
+function max($arg, mixed ...$args): mixed {}
 
 function array_walk(array|object &$input, callable $funcname, $userdata = UNKNOWN): bool {}
 
@@ -133,9 +123,9 @@ function extract(array &$arg, int $extract_type = EXTR_OVERWRITE, string $prefix
 
 function compact($var_name, ...$var_names): array {}
 
-function array_fill(int $start_key, int $num, $val): array {}
+function array_fill(int $start_key, int $num, mixed $val): array {}
 
-function array_fill_keys(array $keys, $val): array {}
+function array_fill_keys(array $keys, mixed $val): array {}
 
 /**
  * @param int|float|string $low
@@ -146,13 +136,11 @@ function range($low, $high, $step = 1): array {}
 
 function shuffle(array &$arg): bool {}
 
-/** @return mixed */
-function array_pop(array &$stack) {}
+function array_pop(array &$stack): mixed {}
 
-/** @return mixed */
-function array_shift(array &$stack) {}
+function array_shift(array &$stack): mixed {}
 
-function array_unshift(array &$stack, ...$vars): int {}
+function array_unshift(array &$stack, mixed ...$vars): int {}
 
 function array_splice(array &$arg, int $offset, ?int $length = null, $replacement = []): array {}
 
@@ -180,7 +168,7 @@ function array_column(array $arg, int|string|null $column_key, int|string|null $
 
 function array_reverse(array $input, bool $preserve_keys = false): array {}
 
-function array_pad(array $arg, int $pad_size, $pad_value): array {}
+function array_pad(array $arg, int $pad_size, mixed $pad_value): array {}
 
 function array_flip(array $arg): array {}
 
@@ -234,18 +222,17 @@ function array_sum(array $arg): int|float {}
 
 function array_product(array $arg): int|float {}
 
-/** @return mixed */
-function array_reduce(array $arg, callable $callback, $initial = null) {}
+function array_reduce(array $arg, callable $callback, mixed $initial = null): mixed {}
 
 function array_filter(array $arg, ?callable $callback = null, int $use_keys = 0): array {}
 
 function array_map(?callable $callback, array $arr1, array ...$arrays): array {}
 
-/** @param mixed $key */
+/** @param int|string $key */
 function array_key_exists($key, array $search): bool {}
 
 /**
- * @param mixed $key
+ * @param int|string $key
  * @alias array_key_exists
  */
 function key_exists($key, array $search): bool {}
@@ -262,8 +249,7 @@ function base64_decode(string $str, bool $strict = false): string|false {}
 
 /* basic_functions.c */
 
-/** @return mixed */
-function constant(string $name) {}
+function constant(string $name): mixed {}
 
 function ip2long(string $ip_address): int|false {}
 
@@ -299,29 +285,16 @@ function error_get_last(): ?array {}
 
 function error_clear_last(): void {}
 
-/**
- * @param mixed ...$args
- * @return mixed
- */
-function call_user_func(callable $function, ...$args) {}
+function call_user_func(callable $function, mixed ...$args): mixed {}
 
-/** @return mixed */
-function call_user_func_array(callable $function, array $args) {}
+function call_user_func_array(callable $function, array $args): mixed {}
 
-/**
- * @param mixed ...$args
- * @return mixed
- */
-function forward_static_call(callable $function, ...$args) {}
+function forward_static_call(callable $function, mixed ...$args): mixed {}
 
-/** @return mixed */
-function forward_static_call_array(callable $function, array $args) {}
+function forward_static_call_array(callable $function, array $args): mixed {}
 
-/**
- * @param callable $function
- * @param mixed ...$args
- */
-function register_shutdown_function($function, ...$args): ?bool {}
+/** @param callable $function */
+function register_shutdown_function($function, mixed ...$args): ?bool {}
 
 function highlight_file(string $filename, bool $return = false): string|bool|null {}
 
@@ -347,8 +320,7 @@ function set_include_path(string $include_path): string|false {}
 
 function get_include_path(): string|false {}
 
-/** @param mixed $var */
-function print_r($var, bool $return = false): string|bool {}
+function print_r(mixed $var, bool $return = false): string|bool {}
 
 function connection_aborted(): int {}
 
@@ -372,8 +344,7 @@ function getprotobyname(string $name): int|false {}
 function getprotobynumber(int $protocol): string|false {}
 #endif
 
-/** @param mixed $args */
-function register_tick_function(callable $function, ...$args): bool {}
+function register_tick_function(callable $function, mixed ...$args): bool {}
 
 function unregister_tick_function($function): void {}
 
@@ -666,7 +637,7 @@ function hebrev(string $str, int $max_chars_per_line = 0): string {}
 
 function nl2br(string $str, bool $is_xhtml = true): string {}
 
-/** @param mixed $allowable_tags */
+/** @param array|string|null $allowable_tags */
 function strip_tags(string $str, $allowable_tags = UNKNOWN): string {}
 
 /**
@@ -812,11 +783,8 @@ function fread($handle, int $length): string|false {}
  */
 function fopen(string $filename, string $mode, bool $use_include_path = false, $context = null) {}
 
-/**
- * @param resource $stream
- * @param mixed ...$args
- */
-function fscanf($stream, string $format, &...$args): array|int|false|null {}
+/** @param resource $stream */
+function fscanf($stream, string $format, mixed &...$args): array|int|false|null {}
 
 /** @param resource $handle */
 function fpassthru($handle): int {}
@@ -868,11 +836,8 @@ function file_get_contents(string $filename, bool $use_include_path = false, $co
 /** @param resource|null $context */
 function unlink(string $filename, $context = null): bool {}
 
-/**
- * @param mixed $content
- * @param resource|null $context
- */
-function file_put_contents(string $filename, $content, int $flags = 0, $context = null): int|false {}
+/** @param resource|null $context */
+function file_put_contents(string $filename, mixed $content, int $flags = 0, $context = null): int|false {}
 
 /** @param resource $handle */
 function fputcsv($handle, array $fields, string $delimiter = ",", string $enclosure = "\"", string $escape = "\\"): int|false {}
@@ -960,21 +925,16 @@ function realpath_cache_size(): int {}
 
 /* formatted_print.c */
 
-/** @param mixed ...$args */
-function sprintf(string $format, ...$args): string {}
+function sprintf(string $format, mixed ...$args): string {}
 
-/** @param mixed ...$args */
-function printf(string $format, ...$args): int {}
+function printf(string $format, mixed ...$args): int {}
 
 function vprintf(string $format, array $args): int {}
 
 function vsprintf(string $format, array $args): string {}
 
-/**
- * @param resource $handle
- * @param mixed ...$args
- */
-function fprintf($handle, string $format, ...$args): int {}
+/** @param resource $handle */
+function fprintf($handle, string $format, mixed ...$args): int {}
 
 /** @param resource $handle */
 function vfprintf($handle, string $format, array $args): int {}
@@ -1093,8 +1053,7 @@ function intdiv(int $dividend, int $divisor): int {}
 
 function is_infinite(float $number): bool {}
 
-/** @return mixed */
-function pow($base, $exp) {}
+function pow($base, $exp): int|float|object {}
 
 function exp(float $number): float {}
 
@@ -1226,7 +1185,7 @@ function stream_context_get_params($context): array {}
  * @param array|string $param2
  * @param mixed $value
  */
-function stream_context_set_option($context, $param2, string $option_name = UNKNOWN, $value = UNKNOWN): bool {}
+function stream_context_set_option($context, $param2, string $option_name = UNKNOWN, mixed $value = UNKNOWN): bool {}
 
 /** @param resource $stream_or_context */
 function stream_context_get_options($stream_or_context): array {}
@@ -1374,88 +1333,57 @@ function socket_set_timeout($socket, int $seconds, int $microseconds = 0): bool
 
 /* type.c */
 
-/** @param mixed $var */
-function gettype($var): string {}
+function gettype(mixed $var): string {}
 
-/** @param mixed $var */
-function get_debug_type($var): string {}
+function get_debug_type(mixed $var): string {}
 
 function settype(&$var, string $type): bool {}
 
-/** @param mixed $value */
-function intval($value, int $base = 10): int {}
+function intval(mixed $value, int $base = 10): int {}
 
-/** @param mixed $value */
-function floatval($value): float {}
+function floatval(mixed $value): float {}
 
-/**
- * @param mixed $value
- * @alias floatval
- */
-function doubleval($value): float {}
+/** @alias floatval */
+function doubleval(mixed $value): float {}
 
-/** @param mixed $value */
-function boolval($value): bool {}
+function boolval(mixed $value): bool {}
 
-/** @param mixed $value */
-function strval($value): string {}
+function strval(mixed $value): string {}
 
-/** @param mixed $value */
-function is_null($value): bool {}
+function is_null(mixed $value): bool {}
 
-/** @param mixed $value */
-function is_resource($value): bool {}
+function is_resource(mixed $value): bool {}
 
-/** @param mixed $value */
-function is_bool($value): bool {}
+function is_bool(mixed $value): bool {}
 
-/** @param mixed $value */
-function is_int($value): bool {}
+function is_int(mixed $value): bool {}
 
-/**
- * @param mixed $value
- * @alias is_int
- */
-function is_integer($value): bool {}
+/** @alias is_int */
+function is_integer(mixed $value): bool {}
 
-/**
- * @param mixed $value
- * @alias is_int
- */
-function is_long($value): bool {}
+/** @alias is_int */
+function is_long(mixed $value): bool {}
 
-/** @param mixed $value */
-function is_float($value): bool {}
+function is_float(mixed $value): bool {}
 
-/**
- * @param mixed $value
- * @alias is_float
- */
-function is_double($value): bool {}
+/** @alias is_float */
+function is_double(mixed $value): bool {}
 
-/** @param mixed $value */
-function is_numeric($value): bool {}
+function is_numeric(mixed $value): bool {}
 
-/** @param mixed $value */
-function is_string($value): bool {}
+function is_string(mixed $value): bool {}
 
-/** @param mixed $value */
-function is_array($value): bool {}
+function is_array(mixed $value): bool {}
 
-/** @param mixed $value */
-function is_object($value): bool {}
+function is_object(mixed $value): bool {}
 
-/** @param mixed $value */
-function is_scalar($value): bool {}
+function is_scalar(mixed $value): bool {}
 
-/** @param mixed $value */
-function is_callable($value, bool $syntax_only = false, &$callable_name = null): bool {}
+function is_callable(mixed $value, bool $syntax_only = false, &$callable_name = null): bool {}
 
-/** @param mixed $value */
-function is_iterable($value): bool {}
+function is_iterable(mixed $value): bool {}
 
-/** @param mixed $value */
-function is_countable($value): bool {}
+function is_countable(mixed $value): bool {}
 
 /* uniqid.c */
 
@@ -1503,20 +1431,15 @@ function convert_uudecode(string $data): string|false {}
 
 /* var.c */
 
-/** @param mixed $value */
-function var_dump($value, ...$value): void {}
+function var_dump(mixed $value, mixed ...$value): void {}
 
-/** @param mixed $value */
-function var_export($value, bool $return = false): ?string {}
+function var_export(mixed $value, bool $return = false): ?string {}
 
-/** @param mixed $value */
-function debug_zval_dump($value, ...$value): void {}
+function debug_zval_dump(mixed $value, mixed ...$value): void {}
 
-/** @param mixed $value */
-function serialize($value): string {}
+function serialize(mixed $value): string {}
 
-/** @return mixed */
-function unserialize(string $value, array $options = []) {}
+function unserialize(string $value, array $options = []): mixed {}
 
 function memory_get_usage(bool $real_usage = false): int {}
 
index b646c698d9e3817b7b0e0a1f4522410617bd35e4..20b1ed6835df1a8f0667399a04d3338804cd58de 100755 (executable)
@@ -110,7 +110,7 @@ ZEND_END_ARG_INFO()
 
 #define arginfo_uksort arginfo_usort
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_end, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_end, 0, 1, IS_MIXED, 0)
        ZEND_ARG_TYPE_MASK(1, arg, MAY_BE_ARRAY|MAY_BE_OBJECT, NULL)
 ZEND_END_ARG_INFO()
 
@@ -120,7 +120,7 @@ ZEND_END_ARG_INFO()
 
 #define arginfo_reset arginfo_end
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_current, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_current, 0, 1, IS_MIXED, 0)
        ZEND_ARG_TYPE_MASK(0, arg, MAY_BE_ARRAY|MAY_BE_OBJECT, NULL)
 ZEND_END_ARG_INFO()
 
@@ -130,9 +130,9 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_key, 0, 1, MAY_BE_LONG|MAY_BE_ST
        ZEND_ARG_TYPE_MASK(0, arg, MAY_BE_ARRAY|MAY_BE_OBJECT, NULL)
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_min, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_min, 0, 1, IS_MIXED, 0)
        ZEND_ARG_INFO(0, arg)
-       ZEND_ARG_VARIADIC_INFO(0, args)
+       ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 #define arginfo_max arginfo_min
@@ -171,12 +171,12 @@ ZEND_END_ARG_INFO()
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_array_fill, 0, 3, IS_ARRAY, 0)
        ZEND_ARG_TYPE_INFO(0, start_key, IS_LONG, 0)
        ZEND_ARG_TYPE_INFO(0, num, IS_LONG, 0)
-       ZEND_ARG_INFO(0, val)
+       ZEND_ARG_TYPE_INFO(0, val, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_array_fill_keys, 0, 2, IS_ARRAY, 0)
        ZEND_ARG_TYPE_INFO(0, keys, IS_ARRAY, 0)
-       ZEND_ARG_INFO(0, val)
+       ZEND_ARG_TYPE_INFO(0, val, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_range, 0, 2, IS_ARRAY, 0)
@@ -187,7 +187,7 @@ ZEND_END_ARG_INFO()
 
 #define arginfo_shuffle arginfo_natsort
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_array_pop, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_array_pop, 0, 1, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO(1, stack, IS_ARRAY, 0)
 ZEND_END_ARG_INFO()
 
@@ -195,7 +195,7 @@ ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_array_unshift, 0, 1, IS_LONG, 0)
        ZEND_ARG_TYPE_INFO(1, stack, IS_ARRAY, 0)
-       ZEND_ARG_VARIADIC_INFO(0, vars)
+       ZEND_ARG_VARIADIC_TYPE_INFO(0, vars, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_array_splice, 0, 2, IS_ARRAY, 0)
@@ -257,7 +257,7 @@ ZEND_END_ARG_INFO()
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_array_pad, 0, 3, IS_ARRAY, 0)
        ZEND_ARG_TYPE_INFO(0, arg, IS_ARRAY, 0)
        ZEND_ARG_TYPE_INFO(0, pad_size, IS_LONG, 0)
-       ZEND_ARG_INFO(0, pad_value)
+       ZEND_ARG_TYPE_INFO(0, pad_value, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 #define arginfo_array_flip arginfo_array_values
@@ -330,10 +330,10 @@ ZEND_END_ARG_INFO()
 
 #define arginfo_array_product arginfo_array_sum
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_array_reduce, 0, 0, 2)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_array_reduce, 0, 2, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO(0, arg, IS_ARRAY, 0)
        ZEND_ARG_TYPE_INFO(0, callback, IS_CALLABLE, 0)
-       ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, initial, "null")
+       ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, initial, IS_MIXED, 0, "null")
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_array_filter, 0, 1, IS_ARRAY, 0)
@@ -375,7 +375,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_base64_decode, 0, 1, MAY_BE_STRI
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, strict, _IS_BOOL, 0, "false")
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_constant, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_constant, 0, 1, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO(0, name, IS_STRING, 0)
 ZEND_END_ARG_INFO()
 
@@ -447,12 +447,12 @@ ZEND_END_ARG_INFO()
 
 #define arginfo_error_clear_last arginfo_flush
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_call_user_func, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_call_user_func, 0, 1, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO(0, function, IS_CALLABLE, 0)
-       ZEND_ARG_VARIADIC_INFO(0, args)
+       ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_call_user_func_array, 0, 0, 2)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_call_user_func_array, 0, 2, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO(0, function, IS_CALLABLE, 0)
        ZEND_ARG_TYPE_INFO(0, args, IS_ARRAY, 0)
 ZEND_END_ARG_INFO()
@@ -463,7 +463,7 @@ ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_register_shutdown_function, 0, 1, _IS_BOOL, 1)
        ZEND_ARG_INFO(0, function)
-       ZEND_ARG_VARIADIC_INFO(0, args)
+       ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_highlight_file, 0, 1, MAY_BE_STRING|MAY_BE_BOOL|MAY_BE_NULL)
@@ -509,7 +509,7 @@ ZEND_END_ARG_INFO()
 #define arginfo_get_include_path arginfo_ob_get_flush
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_print_r, 0, 1, MAY_BE_STRING|MAY_BE_BOOL)
-       ZEND_ARG_INFO(0, var)
+       ZEND_ARG_TYPE_INFO(0, var, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, return, _IS_BOOL, 0, "false")
 ZEND_END_ARG_INFO()
 
@@ -549,7 +549,7 @@ ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_register_tick_function, 0, 1, _IS_BOOL, 0)
        ZEND_ARG_TYPE_INFO(0, function, IS_CALLABLE, 0)
-       ZEND_ARG_VARIADIC_INFO(0, args)
+       ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_unregister_tick_function, 0, 1, IS_VOID, 0)
@@ -1251,7 +1251,7 @@ ZEND_END_ARG_INFO()
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_fscanf, 0, 2, MAY_BE_ARRAY|MAY_BE_LONG|MAY_BE_FALSE|MAY_BE_NULL)
        ZEND_ARG_INFO(0, stream)
        ZEND_ARG_TYPE_INFO(0, format, IS_STRING, 0)
-       ZEND_ARG_VARIADIC_INFO(1, args)
+       ZEND_ARG_VARIADIC_TYPE_INFO(1, args, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 #define arginfo_fpassthru arginfo_pclose
@@ -1333,7 +1333,7 @@ ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_file_put_contents, 0, 2, MAY_BE_LONG|MAY_BE_FALSE)
        ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
-       ZEND_ARG_INFO(0, content)
+       ZEND_ARG_TYPE_INFO(0, content, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, flags, IS_LONG, 0, "0")
        ZEND_ARG_INFO_WITH_DEFAULT_VALUE(0, context, "null")
 ZEND_END_ARG_INFO()
@@ -1470,12 +1470,12 @@ ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_sprintf, 0, 1, IS_STRING, 0)
        ZEND_ARG_TYPE_INFO(0, format, IS_STRING, 0)
-       ZEND_ARG_VARIADIC_INFO(0, args)
+       ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_printf, 0, 1, IS_LONG, 0)
        ZEND_ARG_TYPE_INFO(0, format, IS_STRING, 0)
-       ZEND_ARG_VARIADIC_INFO(0, args)
+       ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_vprintf, 0, 2, IS_LONG, 0)
@@ -1491,7 +1491,7 @@ ZEND_END_ARG_INFO()
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_fprintf, 0, 2, IS_LONG, 0)
        ZEND_ARG_INFO(0, handle)
        ZEND_ARG_TYPE_INFO(0, format, IS_STRING, 0)
-       ZEND_ARG_VARIADIC_INFO(0, args)
+       ZEND_ARG_VARIADIC_TYPE_INFO(0, args, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_vfprintf, 0, 3, IS_LONG, 0)
@@ -1672,7 +1672,7 @@ ZEND_END_ARG_INFO()
 
 #define arginfo_is_infinite arginfo_is_finite
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_pow, 0, 0, 2)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_MASK_EX(arginfo_pow, 0, 2, MAY_BE_LONG|MAY_BE_DOUBLE|MAY_BE_OBJECT)
        ZEND_ARG_INFO(0, base)
        ZEND_ARG_INFO(0, exp)
 ZEND_END_ARG_INFO()
@@ -1880,7 +1880,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_stream_context_set_option, 0, 2,
        ZEND_ARG_INFO(0, context)
        ZEND_ARG_INFO(0, param2)
        ZEND_ARG_TYPE_INFO(0, option_name, IS_STRING, 0)
-       ZEND_ARG_INFO(0, value)
+       ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_stream_context_get_options, 0, 1, IS_ARRAY, 0)
@@ -2052,7 +2052,7 @@ ZEND_END_ARG_INFO()
 #endif
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_gettype, 0, 1, IS_STRING, 0)
-       ZEND_ARG_INFO(0, var)
+       ZEND_ARG_TYPE_INFO(0, var, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 #define arginfo_get_debug_type arginfo_gettype
@@ -2063,22 +2063,22 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_settype, 0, 2, _IS_BOOL, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_intval, 0, 1, IS_LONG, 0)
-       ZEND_ARG_INFO(0, value)
+       ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, base, IS_LONG, 0, "10")
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_floatval, 0, 1, IS_DOUBLE, 0)
-       ZEND_ARG_INFO(0, value)
+       ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 #define arginfo_doubleval arginfo_floatval
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_boolval, 0, 1, _IS_BOOL, 0)
-       ZEND_ARG_INFO(0, value)
+       ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_strval, 0, 1, IS_STRING, 0)
-       ZEND_ARG_INFO(0, value)
+       ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 #define arginfo_is_null arginfo_boolval
@@ -2108,7 +2108,7 @@ ZEND_END_ARG_INFO()
 #define arginfo_is_scalar arginfo_boolval
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_is_callable, 0, 1, _IS_BOOL, 0)
-       ZEND_ARG_INFO(0, value)
+       ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, syntax_only, _IS_BOOL, 0, "false")
        ZEND_ARG_INFO_WITH_DEFAULT_VALUE(1, callable_name, "null")
 ZEND_END_ARG_INFO()
@@ -2173,12 +2173,12 @@ ZEND_END_ARG_INFO()
 #define arginfo_convert_uudecode arginfo_hex2bin
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_var_dump, 0, 1, IS_VOID, 0)
-       ZEND_ARG_INFO(0, value)
-       ZEND_ARG_VARIADIC_INFO(0, value)
+       ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
+       ZEND_ARG_VARIADIC_TYPE_INFO(0, value, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_var_export, 0, 1, IS_STRING, 1)
-       ZEND_ARG_INFO(0, value)
+       ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, return, _IS_BOOL, 0, "false")
 ZEND_END_ARG_INFO()
 
@@ -2186,7 +2186,7 @@ ZEND_END_ARG_INFO()
 
 #define arginfo_serialize arginfo_strval
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_unserialize, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_unserialize, 0, 1, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO(0, value, IS_STRING, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, options, IS_ARRAY, 0, "[]")
 ZEND_END_ARG_INFO()
index 21193aeb48ca30ebef8d4e52a140e3d5e1abdb39..e97a3d08baa6318ac23f21e3599228a4223c81f6 100644 (file)
@@ -8,16 +8,13 @@ final class XmlRpcServer
 
 function xmlrpc_encode($value): ?string {}
 
-/** @return mixed */
-function xmlrpc_decode(string $xml, string $encoding = "iso-8859-1") {}
+function xmlrpc_decode(string $xml, string $encoding = "iso-8859-1"): mixed {}
 
-/** @return mixed */
-function xmlrpc_decode_request(string $xml, &$method, string $encoding = "iso-8859-1") {}
+function xmlrpc_decode_request(string $xml, &$method, string $encoding = "iso-8859-1"): mixed {}
 
 function xmlrpc_encode_request(?string $method, $params, array $output_options = UNKNOWN): ?string {}
 
-/** @param mixed $value */
-function xmlrpc_get_type($value): string {}
+function xmlrpc_get_type(mixed $value): string {}
 
 function xmlrpc_set_type(&$value, string $type): bool {}
 
@@ -29,11 +26,9 @@ function xmlrpc_server_destroy(XmlRpcServer $server): bool {}
 
 function xmlrpc_server_register_method(XmlRpcServer $server, string $method_name, $function): bool {}
 
-/** @return mixed */
-function xmlrpc_server_call_method(XmlRpcServer $server, string $xml, $user_data, array $output_options = UNKNOWN) {}
+function xmlrpc_server_call_method(XmlRpcServer $server, string $xml, $user_data, array $output_options = UNKNOWN): mixed {}
 
-/** @return mixed */
-function xmlrpc_parse_method_descriptions(string $xml) {}
+function xmlrpc_parse_method_descriptions(string $xml): mixed {}
 
 function xmlrpc_server_add_introspection_data(XmlRpcServer $server, array $desc): int {}
 
index b3ee59fd46a253694e34bd393f8fa07059358d57..0a5d1198f821461f36a9afc83dfd910ddf9f187d 100644 (file)
@@ -4,12 +4,12 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_encode, 0, 1, IS_STRING,
        ZEND_ARG_INFO(0, value)
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_decode, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_decode, 0, 1, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO(0, xml, IS_STRING, 0)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, encoding, IS_STRING, 0, "\"iso-8859-1\"")
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_decode_request, 0, 0, 2)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_decode_request, 0, 2, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO(0, xml, IS_STRING, 0)
        ZEND_ARG_INFO(1, method)
        ZEND_ARG_TYPE_INFO_WITH_DEFAULT_VALUE(0, encoding, IS_STRING, 0, "\"iso-8859-1\"")
@@ -22,7 +22,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_encode_request, 0, 2, IS_
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_get_type, 0, 1, IS_STRING, 0)
-       ZEND_ARG_INFO(0, value)
+       ZEND_ARG_TYPE_INFO(0, value, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_set_type, 0, 2, _IS_BOOL, 0)
@@ -47,14 +47,14 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_server_register_method, 0
        ZEND_ARG_INFO(0, function)
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_server_call_method, 0, 0, 3)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_server_call_method, 0, 3, IS_MIXED, 0)
        ZEND_ARG_OBJ_INFO(0, server, XmlRpcServer, 0)
        ZEND_ARG_TYPE_INFO(0, xml, IS_STRING, 0)
        ZEND_ARG_INFO(0, user_data)
        ZEND_ARG_TYPE_INFO(0, output_options, IS_ARRAY, 0)
 ZEND_END_ARG_INFO()
 
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_parse_method_descriptions, 0, 0, 1)
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_parse_method_descriptions, 0, 1, IS_MIXED, 0)
        ZEND_ARG_TYPE_INFO(0, xml, IS_STRING, 0)
 ZEND_END_ARG_INFO()
 
index f3360fa7f304b89b5ad906bd6b21ee87233c98f6..232c268168b9257075527f76e192f974e2f66d3b 100644 (file)
@@ -26,7 +26,6 @@ function zend_create_unterminated_string(string $str): string {}
 
 function zend_terminate_string(string &$str): void {}
 
-/** @param mixed $variable */
-function zend_leak_variable($variable): void {}
+function zend_leak_variable(mixed $variable): void {}
 
 function zend_leak_bytes(int $bytes = 3): void {}
index 659d4eba66119f178fee962544d3f920168b8164..495539bfbff465b9e42e5fe0e7b65c73d6cfb089 100644 (file)
@@ -20,7 +20,7 @@ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_terminate_string, 0, 1, IS_
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_leak_variable, 0, 1, IS_VOID, 0)
-       ZEND_ARG_INFO(0, variable)
+       ZEND_ARG_TYPE_INFO(0, variable, IS_MIXED, 0)
 ZEND_END_ARG_INFO()
 
 ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_zend_leak_bytes, 0, 0, IS_VOID, 0)