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
Máté Kocsis
39ede67e17
Fix typo in method name in gen_stub.php
2021-08-31 14:43:11 +02:00
Nikita Popov
32d48212ea
Support generating internal enum decl from stubs
2021-08-31 14:19:37 +02:00
Go Kudo
eaac77f4e7
Fix nested namespaced typed property in gen_stub.php ( #7418 )
...
Property escape namespaced class name in property types.
2021-08-31 11:56:39 +02:00
Nikita Popov
52d3af1790
Minor cleanup in gen_stubs
...
Unshare the stmt flag handling code, as this does not always
generalize (e.g. to enum cases, which have no visibility or flags
at all).
2021-08-31 11:44:14 +02:00
Nikita Popov
c1c1822e8c
Fix type hint in gen_stub.php
...
There is no ClassType class, only SimpleType.
[ci skip]
2021-08-31 10:11:15 +02:00
Máté Kocsis
a57b713d66
Fix typo in gen_stub.php
2021-08-30 16:09:10 +02:00
Máté Kocsis
c19e4b9997
Generate optimizer func info from stubs for ext/standard - part 3 ( #7426 )
2021-08-30 15:56:47 +02:00
Máté Kocsis
8e6e9838b0
Add support for generating MAY_BE_ARRAY_OF_REF func info flag ( #7416 )
2021-08-30 13:50:34 +02:00
Nikita Popov
fab1222128
Ensure stub files are processed in predictable order
...
The zend_func_infos.h file was generated in a different order for
me.
2021-08-30 10:28:22 +02:00
Peter Cowburn
36e88a0066
Use &Properties; entity in xpointer for inherited properties in class synopses ( #7400 )
...
This changes ClassInfo::createIncludeElement() such that it takes the $query
argument as-is for the xpointer attribute value. Special characters, like
" and &, are used as-is so be careful not to break the resulting XML.
2021-08-25 12:14:03 +02:00
Máté Kocsis
4a7a414735
Fix callable and iterable handling
2021-08-25 10:37:43 +02:00
Máté Kocsis
d0897b3602
Clean up function map production slightly
...
There's no need to iterate over $fileInfos again while generating the class map
2021-08-24 19:30:00 +02:00
Máté Kocsis
e35a7fe919
Fix function map production
2021-08-24 18:45:31 +02:00
Máté Kocsis
2141bee69d
Add more specific array type hints
2021-08-24 18:40:36 +02:00
Máté Kocsis
b1822899fc
Add support for generating optimizer function info from stubs ( #7367 )
2021-08-24 16:35:33 +02:00
Máté Kocsis
076f2899ba
Add support for replacing class synopses based on stubs ( #7340 )
2021-08-13 15:03:31 +02:00
Máté Kocsis
ac17b3646d
Add support for generating classynopses from stubs
...
Closes GH-7310
2021-08-02 17:56:22 +02:00
Máté Kocsis
fc56de113c
Add support for generating readonly properties via stubs ( #7297 )
2021-07-22 11:09:10 +02:00
Máté Kocsis
23b1c4a982
Migrate to PHP-Parser 4.12.0 and regenerate some arginfos
2021-07-22 09:40:16 +02:00