diff --git a/dictionaries/CallMap.php b/dictionaries/CallMap.php index e2bb1110424..11c010ef7e3 100644 --- a/dictionaries/CallMap.php +++ b/dictionaries/CallMap.php @@ -8462,16 +8462,20 @@ 'mysqli_error_list' => ['array', 'mysql'=>'mysqli'], 'mysqli_escape_string' => ['string', 'mysql'=>'mysqli', 'string'=>'string'], 'mysqli_execute' => ['bool', 'statement'=>'mysqli_stmt', 'params='=>'list|null'], -'mysqli_fetch_all' => ['array', 'result'=>'mysqli_result', 'mode='=>'int'], -'mysqli_fetch_array' => ['array|false|null', 'result'=>'mysqli_result', 'mode='=>'int'], -'mysqli_fetch_assoc' => ['array|false|null', 'result'=>'mysqli_result'], +'mysqli_fetch_all' => ['list>', 'result'=>'mysqli_result', 'mode='=>'3'], +'mysqli_fetch_all\'1' => ['list>', 'result'=>'mysqli_result', 'mode='=>'1'], +'mysqli_fetch_all\'2' => ['list>', 'result'=>'mysqli_result', 'mode='=>'2'], +'mysqli_fetch_array' => ['array|false|null', 'result'=>'mysqli_result', 'mode='=>'3'], +'mysqli_fetch_array\'1' => ['array|false|null', 'result'=>'mysqli_result', 'mode='=>'1'], +'mysqli_fetch_array\'2' => ['list|false|null', 'result'=>'mysqli_result', 'mode='=>'2'], +'mysqli_fetch_assoc' => ['array|false|null', 'result'=>'mysqli_result'], 'mysqli_fetch_column' => ['null|int|float|string|false', 'result'=>'mysqli_result', 'column='=>'int'], 'mysqli_fetch_field' => ['object|false', 'result'=>'mysqli_result'], 'mysqli_fetch_field_direct' => ['object|false', 'result'=>'mysqli_result', 'index'=>'int'], -'mysqli_fetch_fields' => ['array|false', 'result'=>'mysqli_result'], +'mysqli_fetch_fields' => ['stdClass[]', 'result'=>'mysqli_result'], 'mysqli_fetch_lengths' => ['array|false', 'result'=>'mysqli_result'], 'mysqli_fetch_object' => ['object|false|null', 'result'=>'mysqli_result', 'class='=>'class-string', 'constructor_args='=>'array'], -'mysqli_fetch_row' => ['array|false|null', 'result'=>'mysqli_result'], +'mysqli_fetch_row' => ['list|false|null', 'result'=>'mysqli_result'], 'mysqli_field_count' => ['int', 'mysql'=>'mysqli'], 'mysqli_field_seek' => ['bool', 'result'=>'mysqli_result', 'index'=>'int'], 'mysqli_field_tell' => ['int', 'result'=>'mysqli_result'], @@ -8514,15 +8518,19 @@ 'mysqli_result::__construct' => ['void', 'mysql'=>'mysqli', 'result_mode='=>'int'], 'mysqli_result::close' => ['void'], 'mysqli_result::data_seek' => ['bool', 'offset'=>'int'], -'mysqli_result::fetch_all' => ['array', 'mode='=>'int'], -'mysqli_result::fetch_array' => ['array|false|null', 'mode='=>'int'], -'mysqli_result::fetch_assoc' => ['array|false|null'], +'mysqli_result::fetch_all' => ['list>', 'mode='=>'3'], +'mysqli_result::fetch_all\'1' => ['list>', 'mode='=>'1'], +'mysqli_result::fetch_all\'2' => ['list>', 'mode='=>'2'], +'mysqli_result::fetch_array' => ['array|false|null', 'mode='=>'3'], +'mysqli_result::fetch_array\'1' => ['array|false|null', 'mode='=>'1'], +'mysqli_result::fetch_array\'2' => ['list|false|null', 'mode='=>'2'], +'mysqli_result::fetch_assoc' => ['array|false|null'], 'mysqli_result::fetch_column' => ['null|int|float|string|false', 'column='=>'int'], 'mysqli_result::fetch_field' => ['object|false'], 'mysqli_result::fetch_field_direct' => ['object|false', 'index'=>'int'], -'mysqli_result::fetch_fields' => ['array|false'], +'mysqli_result::fetch_fields' => ['stdClass[]'], 'mysqli_result::fetch_object' => ['object|false|null', 'class='=>'class-string', 'constructor_args='=>'array'], -'mysqli_result::fetch_row' => ['array|false|null'], +'mysqli_result::fetch_row' => ['list|false|null'], 'mysqli_result::field_seek' => ['bool', 'index'=>'int'], 'mysqli_result::free' => ['void'], 'mysqli_result::free_result' => ['void'], diff --git a/dictionaries/CallMap_historical.php b/dictionaries/CallMap_historical.php index 726ba7290a5..18f614ade64 100644 --- a/dictionaries/CallMap_historical.php +++ b/dictionaries/CallMap_historical.php @@ -13398,15 +13398,19 @@ 'mysqli_error_list' => ['array', 'mysql'=>'mysqli'], 'mysqli_escape_string' => ['string', 'mysql'=>'mysqli', 'string'=>'string'], 'mysqli_execute' => ['bool', 'statement'=>'mysqli_stmt'], - 'mysqli_fetch_all' => ['array', 'result'=>'mysqli_result', 'mode='=>'int'], - 'mysqli_fetch_array' => ['array|false|null', 'result'=>'mysqli_result', 'mode='=>'int'], - 'mysqli_fetch_assoc' => ['array|false|null', 'result'=>'mysqli_result'], + 'mysqli_fetch_all' => ['list>', 'result'=>'mysqli_result', 'mode='=>'3'], + 'mysqli_fetch_all\'1' => ['list>', 'result'=>'mysqli_result', 'mode='=>'1'], + 'mysqli_fetch_all\'2' => ['list>', 'result'=>'mysqli_result', 'mode='=>'2'], + 'mysqli_fetch_array' => ['array|false|null', 'result'=>'mysqli_result', 'mode='=>'3'], + 'mysqli_fetch_array\'1' => ['array|false|null', 'result'=>'mysqli_result', 'mode='=>'1'], + 'mysqli_fetch_array\'2' => ['list|false|null', 'result'=>'mysqli_result', 'mode='=>'2'], + 'mysqli_fetch_assoc' => ['array|false|null', 'result'=>'mysqli_result'], 'mysqli_fetch_field' => ['object|false', 'result'=>'mysqli_result'], 'mysqli_fetch_field_direct' => ['object|false', 'result'=>'mysqli_result', 'index'=>'int'], - 'mysqli_fetch_fields' => ['array|false', 'result'=>'mysqli_result'], + 'mysqli_fetch_fields' => ['stdClass[]', 'result'=>'mysqli_result'], 'mysqli_fetch_lengths' => ['array|false', 'result'=>'mysqli_result'], 'mysqli_fetch_object' => ['object|false|null', 'result'=>'mysqli_result', 'class='=>'class-string', 'constructor_args='=>'array'], - 'mysqli_fetch_row' => ['array|false|null', 'result'=>'mysqli_result'], + 'mysqli_fetch_row' => ['list|false|null', 'result'=>'mysqli_result'], 'mysqli_field_count' => ['int', 'mysql'=>'mysqli'], 'mysqli_field_seek' => ['bool', 'result'=>'mysqli_result', 'index'=>'int'], 'mysqli_field_tell' => ['int', 'result'=>'mysqli_result'], @@ -13449,14 +13453,18 @@ 'mysqli_result::__construct' => ['void', 'mysql'=>'mysqli', 'result_mode='=>'int'], 'mysqli_result::close' => ['void'], 'mysqli_result::data_seek' => ['bool', 'offset'=>'int'], - 'mysqli_result::fetch_all' => ['array', 'mode='=>'int'], - 'mysqli_result::fetch_array' => ['array|false|null', 'mode='=>'int'], - 'mysqli_result::fetch_assoc' => ['array|false|null'], + 'mysqli_result::fetch_all' => ['list>', 'mode='=>'3'], + 'mysqli_result::fetch_all\'1' => ['list>', 'mode='=>'1'], + 'mysqli_result::fetch_all\'2' => ['list>', 'mode='=>'2'], + 'mysqli_result::fetch_array' => ['array|false|null', 'mode='=>'3'], + 'mysqli_result::fetch_array\'1' => ['array|false|null', 'mode='=>'1'], + 'mysqli_result::fetch_array\'2' => ['list|false|null', 'mode='=>'2'], + 'mysqli_result::fetch_assoc' => ['array|false|null'], 'mysqli_result::fetch_field' => ['object|false'], 'mysqli_result::fetch_field_direct' => ['object|false', 'index'=>'int'], - 'mysqli_result::fetch_fields' => ['array|false'], + 'mysqli_result::fetch_fields' => ['stdClass[]'], 'mysqli_result::fetch_object' => ['object|false|null', 'class='=>'class-string', 'constructor_args='=>'array'], - 'mysqli_result::fetch_row' => ['array|false|null'], + 'mysqli_result::fetch_row' => ['list|false|null'], 'mysqli_result::field_seek' => ['bool', 'index'=>'int'], 'mysqli_result::free' => ['void'], 'mysqli_result::free_result' => ['void'], diff --git a/stubs/mysqli.phpstub b/stubs/mysqli.phpstub index f4244364e34..49758497dbd 100644 --- a/stubs/mysqli.phpstub +++ b/stubs/mysqli.phpstub @@ -9,7 +9,7 @@ class mysqli_result implements Traversable { /** * @psalm-taint-sink callable $class - + * * @template T of object * @param class-string $class * @param array $constructor_args @@ -20,11 +20,11 @@ class mysqli_result implements Traversable /** - * @psalm-taint-sink callable $class - - * @template T of object - * @param class-string $class - * @param array $constructor_args - * @return T|null|false - */ + * @psalm-taint-sink callable $class + * + * @template T of object + * @param class-string $class + * @param array $constructor_args + * @return T|null|false + */ function mysqli_fetch_object(mysqli_result $result, string $class = stdClass::class, array $constructor_args = []): object|false|null {}