anything other than `string|int` is not a valid offset type. `bool` may be added, but it's not a true offset because it will be cast to an `int` if used:
```php
$a = [false => '1' , true => '2'];
$a[0] = '3';
$a[1] = '4';
var_dump($a);
// array(2) {
// [0]=>
// string(1) "3"
// [1]=>
// string(1) "4"
// }
```
* #9293 - fix Missing function's return type declaration (incompatible return type php 8.1)
* #9293 - remove return type void for compatible with php 7.0
* #9293 - add todo for mixed return type
Co-authored-by: Adam Cozzette <acozzette@google.com>
* fix: add missing reserved classnames
* Try to remove PARENT and SELF from reserved constants
* add back for tests
* add to validConstantNames
* update kReservedNamesSize
The previously used term "3-Clause BSD License" is not properly
standarized. A common standard is SPDX, therefore "3-Clause BSD License"
is substituted with "BSD-3-Clause" which is a SPDX identifier.
`grep -rl "3-Clause BSD License" | xargs -n1 sed -i "s/3-Clause BSD
License/BSD-3-Clause/g"`
With guidance from Remi Collet, use ZEND_BEGIN_ARG_WITH_TENTATIVE_RETURN_TYPE_EX macro, and use a conditional to fake that macro
for earlier php versions. Tested on 8.1 and 7.4, and deprecation notices gone plus all tests pass
php 8.1 is more strict, and raises some deprecation notices with existing protobuf code. Not all of the
deprecations can be fixed without dropping support for php7.x (eg, the 'mixed' type doesn't appear until
8.1, and union types until 8.0, but as an interim solution the 'ReturnTypeWillChange' attribute can be
used to suppress the notices. In passing, also be explicit about a cast from float to int in 'zigZagEncode64'
which 8.1 also complains about when running tests.
* Fix comment syntax in any.proto
Remove extra spaces which cause incorrect indentation in godoc.
Remove the "====" style title which is not rendered by godoc.
* Run ./generate_descriptor_proto.sh