1
0
mirror of https://github.com/php/php-src.git synced 2026-04-13 11:02:55 +02:00
Commit Graph

127 Commits

Author SHA1 Message Date
Máté Kocsis
98b858e756 Fix GH-9183 Get rid of unnecessary PHPDoc param and return type checks (#9203) 2022-07-30 15:37:53 +02:00
Máté Kocsis
b56492be9c Do not add inherited interface methods to the class synopsis page
These are not displayed currently in the manual so gen_stub.php should be adapted to this behavior.
2022-07-28 15:14:00 +02:00
Andreas Braun
3c016467c7 Escape \U and \u in generated stubs
This fixes an issue where a namespaced class beginning with "U" or "u"
would yield an invalid arginfo file due to the occurrence of a unicode
escape sequence, causing a compile error.

Co-authored-by: Guilliam Xavier <guilliamxavier@users.noreply.github.com>

Closes GH-9154.
2022-07-28 14:30:11 +02:00
Michael Voříšek
b0c0a2cfb4 Use -1 "precision" in gen_stub.php
Closes GH-8734.
2022-07-23 12:09:37 +02:00
George Peter Banyard
4457dba1fb Add support for stubs to declare intersection type class properties (#8751) 2022-07-22 13:04:49 +01:00
Ilija Tovilo
41a5b46e7d Fix RC debug of stub attribute (#9082) 2022-07-21 15:06:04 +02:00
Máté Kocsis
e328c68305 Rename @cname to @cvalue in stubs (#9043)
@cname currently refers to the constant name in C. However, it is not always a (constant) name, but sometimes a function invocation, so naming it as @cvalue would be more appropriate.
2022-07-19 15:11:42 +02:00
Remi Collet
af72d6e5d9 no need for attributes on legacy 2022-07-18 12:44:29 +02:00
Remi Collet
ee1d6188cf cleanup unused 2022-07-18 12:40:28 +02:00
Remi Collet
55a88f36b6 add SensitiveParameter as known string and use it in arginfo 2022-07-18 11:43:33 +02:00
Remi Collet
6e24c16c4a add compatibility for tentative-return-type 2022-07-12 15:22:49 +02:00
Máté Kocsis
227a8576d2 Fix parameter order in gen_stub.php 2022-07-12 13:08:08 +02:00
Tim Düsterhus
342e18f105 Support the actual #[\SensitiveParameter] attribute in stubs (#8836) 2022-07-12 12:43:44 +02:00
Máté Kocsis
0bddbab084 Make the ABI compatibility of generated arginfo files configurable (#8931) 2022-07-12 10:27:53 +02:00
Remi Collet
b45cd10238 Fix GH-8842 don't set sensitive param in legacy arginfo 2022-07-06 08:40:10 +02:00
Bob Weinand
9f29e2d7e9 Allow for arbitrary (class) attributes in stubs
This can be easily extended to other types of attributes.

Closes #8839.
2022-07-05 18:23:05 +02:00
Tim Düsterhus
ff472ce6fc Support the #[\AllowDynamicProperties] attribute in stubs (#8776)
* Support the `#[\AllowDynamicProperties]` attribute in stubs

* Use `#[\AllowDynamicProperties]` attribute in stubs

* Disallow applying both `@strict-properties` and `#[\AllowDynamicProperties]`
2022-06-21 09:28:57 +02:00
Yurun
5cf2659fa5 Replace the use of ZVAL_BOOL() with ZVAL_TRUE() or ZVAL_FALSE() where the value is fixed (#8815) 2022-06-20 13:34:44 +01:00
Máté Kocsis
49d3dde211 Declare true return types (#8759) 2022-06-18 22:06:50 +02:00
Pierrick Charron
1bcd8d394a Update gen_stub to support #if around classes 2022-06-13 16:34:12 -04:00
Pierrick Charron
6fd2b39397 Indent with TAB in .h files generated by gen_stub 2022-06-13 08:55:54 -04:00
George Peter Banyard
b40ae80804 Convert iterable into an internal alias for Traversable|array (#7309)
This does a compile time transformation of ``iterable`` into ``Traversable|array`` which simplifies some of the LSP variance handling.

The arginfo generation script from stubs is updated to produce a union type when it encounters the type ``iterable``
Extension functions which do not regenerate the arginfo, or write them manually are still supported by mimicking the compile time transformation while registering the function.

Type Reflection is preserved for single ``iterable`` (and ``?iterable``) to produce a ReflectionNamedType with name ``iterable``, however usage of ``iterable`` in union types will be converted to ``array|Traversable``
2022-06-07 13:35:34 +01:00
Máté Kocsis
b2ed625de1 A few cleanup changes for gen_stub.php 2022-06-06 07:43:56 +02:00
Máté Kocsis
debd38f851 Add support for sensitive parameters in stubs 2022-06-04 18:15:05 +02:00
Máté Kocsis
a420ee6c34 Update PHP-Parser to 4.14
It supports readonly classes
2022-06-01 16:09:57 +02:00
Máté Kocsis
b7b5ad7169 Make ini_set invocation compatible with PHP 8.0 2022-05-31 08:52:35 +02:00
Máté Kocsis
14da1cb909 Add support for class constants in stubs (#7434) 2022-05-22 22:27:23 +02:00
Máté Kocsis
7850c10389 Add support for readonly classes (#7305)
RFC: https://wiki.php.net/rfc/readonly_classes
2022-05-16 20:40:23 +02:00
Ilija Tovilo
9a90bd7054 Deprecate ${} string interpolation
https://wiki.php.net/rfc/deprecate_dollar_brace_string_interpolation
2022-05-05 10:14:56 +02:00
Máté Kocsis
c345b6ee72 Remove unused variable from gen_stub.php 2022-04-13 09:24:08 +02:00
George Peter Banyard
7710f9946b Fix generation of arginfo if type is just null 2022-04-11 16:58:13 +01:00
George Peter Banyard
c12da039b5 Add null and false support to gen_stubs 2022-04-11 14:04:37 +01:00
Derick Rethans
0e65e433a9 Merge branch 'PHP-8.1' 2022-02-15 13:28:07 +00:00
Tyson Andre
0fab520ded Fix zend_register_internal_class_ex alias generation (#8091)
This wouldn't work for creating aliases in a namespace.

It would create the class alias "MyNS_ClassName" instead of
"MyNS\\ClassName"
2022-02-14 17:58:26 -05:00
Tyson Andre
b27d2fffbc Update php-parser to 4.13.2 in build/gen_stub.php (#7989)
v4.13.2 fixes a deprecation notice in php 8.2 for namespacedName
2022-01-22 12:34:50 -05:00
Máté Kocsis
266667c234 Merge branch 'PHP-8.1'
* PHP-8.1:
  Add support for custom property links
2022-01-07 08:29:22 +01:00
Máté Kocsis
62e4ac9439 Add support for custom property links
Closes GH-7892
2022-01-07 08:28:26 +01:00
Máté Kocsis
b9e8d93a5c Merge branch 'PHP-8.1'
* PHP-8.1:
  Fix class synopsis generation
2022-01-06 18:32:43 +01:00
Máté Kocsis
0462719999 Fix class synopsis generation
Closes GH-7891
2022-01-06 18:31:21 +01:00
Tyson Andre
32e2d97a26 Allow internal functions to declare if they support compile-time evaluation, add functions. (#7780)
https://wiki.php.net/rfc/strtolower-ascii means that these functions no longer
depend on the current locale in php 8.2. Before that, this was unsafe to
evaluate at compile time.

Followup to GH-7506

Add strcmp/strcasecmp/strtolower/strtoupper functions

Add bin2hex/hex2bin and related functions

Update test of garbage collection using strtolower to use something else to create a refcounted string
2021-12-20 09:27:06 -05:00
Máté Kocsis
baac970817 Add the --generate-optimizer-info option to the help of gen_stub.php 2021-11-17 10:56:27 +01:00
Nikita Popov
68ca3879d7 Fix generation of property with class union type
The generated type was missing the UNION bit. Add a ZEND_TYPE_INIT_UNION
macro to hide the implementation details.
2021-11-15 11:04:48 +01:00
Nikita Popov
dd0ec7a554 Update PHP-Parser version in gen_stub
This should address the octal issue encountered in #7610.
2021-11-03 12:41:26 +01:00
Máté Kocsis
8168d312f9 Fix a few more classsynopsis generation issues
Closes GH-7480
2021-09-22 23:09:43 +02:00
Máté Kocsis
ea9f943d33 Change gen-stub.php to gen_stub.php in help text 2021-09-12 17:09:56 +02:00
Máté Kocsis
73063db5c8 Fix documentation generation when legacy arginfo is generated
When legacy arginfo is generated, all the type info gets lost. Since this task is performed before any other additional functionalities of gen_stub.php (e.g. verification, method synopsis and class synopsis generation), these fail as they would require the missing type information.

The issue is fixed by deep cloning the file info objects (albeit only their affected properties), so that we use those for legacy arginfo generation, leaving the original ones untouched.
2021-09-12 11:42:22 +02:00
Máté Kocsis
4c9892d1e3 Fix class synopsis generation for interfaces
We have to generate <ooclass> elements for interfaces (rather than <oointerface>) in a number of places: directly inside the <classsynopsis> element and in the extends list.
2021-09-08 12:23:00 +02:00
Máté Kocsis
f588764292 Improve class synopsis root element generation
Besides classrefs, we also have exceptionrefs. Also, the 4th capture group replacement used to be unintentionally duplicated.
2021-09-08 10:40:14 +02:00
Máté Kocsis
4483ecf5a9 Properly escape the default value of string properties and enum cases 2021-09-02 16:53:31 +02:00
Máté Kocsis
edf2947a5d Remove unused variable from property generation code 2021-08-31 14:44:41 +02:00