diff options
author | Nikita Popov <nikita.ppv@gmail.com> | 2020-03-24 13:18:28 +0100 |
---|---|---|
committer | Nikita Popov <nikita.ppv@gmail.com> | 2020-06-05 15:15:51 +0200 |
commit | 064b4644484d38e9dce40aef7e8e0e8190e9d863 (patch) | |
tree | ceb34fd4bc375ea0accdf3f8b1b15c389c7e103a /Zend/zend_compile.h | |
parent | 91f283a0bfc6792d84fb9a6361e21f6f33769c4d (diff) | |
download | php-git-064b4644484d38e9dce40aef7e8e0e8190e9d863.tar.gz |
Implement "Constructor Promotion" RFC
RFC: https://wiki.php.net/rfc/constructor_promotion
Closes GH-5291.
Diffstat (limited to 'Zend/zend_compile.h')
-rw-r--r-- | Zend/zend_compile.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h index 1a53f92e9e..9a1e5adaaf 100644 --- a/Zend/zend_compile.h +++ b/Zend/zend_compile.h @@ -209,6 +209,9 @@ typedef struct _zend_oparray_context { /* Static method or property | | | */ #define ZEND_ACC_STATIC (1 << 4) /* | X | X | */ /* | | | */ +/* Promoted property / parameter | | | */ +#define ZEND_ACC_PROMOTED (1 << 5) /* | | X | X */ +/* | | | */ /* Final class or method | | | */ #define ZEND_ACC_FINAL (1 << 5) /* X | X | | */ /* | | | */ @@ -873,8 +876,9 @@ ZEND_API zend_string *zend_type_to_string(zend_type type); #define ZEND_FETCH_CLASS_ALLOW_UNLINKED 0x0400 #define ZEND_FETCH_CLASS_ALLOW_NEARLY_LINKED 0x0800 -#define ZEND_PARAM_REF (1<<0) -#define ZEND_PARAM_VARIADIC (1<<1) +/* These should not clash with ZEND_ACC_(PUBLIC|PROTECTED|PRIVATE) */ +#define ZEND_PARAM_REF (1<<3) +#define ZEND_PARAM_VARIADIC (1<<4) #define ZEND_NAME_FQ 0 #define ZEND_NAME_NOT_FQ 1 @@ -937,10 +941,13 @@ ZEND_API zend_string *zend_type_to_string(zend_type type); /* The send mode and is_variadic flag are stored as part of zend_type */ #define _ZEND_SEND_MODE_SHIFT _ZEND_TYPE_EXTRA_FLAGS_SHIFT #define _ZEND_IS_VARIADIC_BIT (1 << (_ZEND_TYPE_EXTRA_FLAGS_SHIFT + 2)) +#define _ZEND_IS_PROMOTED_BIT (1 << (_ZEND_TYPE_EXTRA_FLAGS_SHIFT + 3)) #define ZEND_ARG_SEND_MODE(arg_info) \ ((ZEND_TYPE_FULL_MASK((arg_info)->type) >> _ZEND_SEND_MODE_SHIFT) & 3) #define ZEND_ARG_IS_VARIADIC(arg_info) \ ((ZEND_TYPE_FULL_MASK((arg_info)->type) & _ZEND_IS_VARIADIC_BIT) != 0) +#define ZEND_ARG_IS_PROMOTED(arg_info) \ + ((ZEND_TYPE_FULL_MASK((arg_info)->type) & _ZEND_IS_PROMOTED_BIT) != 0) #define ZEND_DIM_IS (1 << 0) /* isset fetch needed for null coalesce */ #define ZEND_DIM_ALTERNATIVE_SYNTAX (1 << 1) /* deprecated curly brace usage */ |