php-src/ext/reflection
Nikita Popov 999e32b65a Implement union types
According to RFC: https://wiki.php.net/rfc/union_types_v2

The type representation now makes use of both the pointer payload
and the type mask at the same time. Additionall, zend_type_list is
introduced as a new kind of pointer payload, which is used to store
multiple class types. Each of the class types is a tagged pointer,
which may be either a class name or class entry. The latter is only
used for typed properties, while arguments/returns will instead use
cache slots. A type list can contain a mix of both names and CEs at
the same time, as not all classes may be resolvable.

One thing this is missing is support for union types in arginfo
and stubs, which I want to handle separately.

I've also dropped the special object code from the JIT implementation
for now -- I plan to add this back in a different form at a later time.
For now I did not want to include non-trivial JIT changes together
with large functional changes.

Another possible piece of follow-up work is to implement "iterable"
as an internal alias for "array|Traversable". I believe this will
eliminate quite a few special-cases that had to be implemented.

Closes GH-4838.
2019-11-08 15:15:48 +01:00
..
tests Implement union types 2019-11-08 15:15:48 +01:00
config.m4 Normalize comments in *nix build system m4 files 2019-05-12 18:43:03 +02:00
config.w32 Remove HAVE_* for always available extensions 2019-04-14 11:44:12 -03:00
CREDITS Change some permissions from 755 to 644 2018-08-28 23:26:49 +02:00
php_reflection.c Implement union types 2019-11-08 15:15:48 +01:00
php_reflection.h Remove mention of PHP major version in Copyright headers 2019-09-25 14:51:43 +02:00
reflection.stub.php Implement union types 2019-11-08 15:15:48 +01:00
reflection_arginfo.h Implement union types 2019-11-08 15:15:48 +01:00