|
117 | 117 | # define ZEND_ENCAPS_VAR_DOLLAR_CURLY_VAR_VAR (1<<1) |
118 | 118 | #endif |
119 | 119 |
|
| 120 | +#if PHP_VERSION_ID < 80400 |
| 121 | +# define MODIFIER_PUBLIC_SET (1 << 11) |
| 122 | +# define MODIFIER_PROTECTED_SET (1 << 12) |
| 123 | +# define MODIFIER_PRIVATE_SET (1 << 13) |
| 124 | +#else |
| 125 | +# define MODIFIER_PUBLIC_SET ZEND_ACC_PUBLIC_SET |
| 126 | +# define MODIFIER_PROTECTED_SET ZEND_ACC_PROTECTED_SET |
| 127 | +# define MODIFIER_PRIVATE_SET ZEND_ACC_PRIVATE_SET |
| 128 | +#endif |
| 129 | + |
120 | 130 | #if PHP_VERSION_ID >= 80400 |
121 | 131 | # define ZEND_DIM_ALTERNATIVE_SYNTAX (1<<1) |
122 | 132 | #endif |
@@ -289,11 +299,22 @@ static const char *closure_use_flags[] = { |
289 | 299 | AST_FLAG(MODIFIER_FINAL), \ |
290 | 300 | AST_FLAG(MODIFIER_READONLY) |
291 | 301 |
|
| 302 | +#define AST_ASYMMETRIC_VISIBILITY_FLAGS \ |
| 303 | + AST_FLAG(MODIFIER_PUBLIC_SET), \ |
| 304 | + AST_FLAG(MODIFIER_PROTECTED_SET), \ |
| 305 | + AST_FLAG(MODIFIER_PRIVATE_SET) |
| 306 | + |
292 | 307 | static const char *modifier_flags[] = { |
293 | 308 | AST_MODIFIER_FLAGS, |
294 | 309 | NULL |
295 | 310 | }; |
296 | 311 |
|
| 312 | +static const char *property_modifier_flags[] = { |
| 313 | + AST_MODIFIER_FLAGS, |
| 314 | + AST_ASYMMETRIC_VISIBILITY_FLAGS, |
| 315 | + NULL |
| 316 | +}; |
| 317 | + |
297 | 318 | static const char *func_flags[] = { |
298 | 319 | AST_MODIFIER_FLAGS, |
299 | 320 | AST_FLAG(FUNC_RETURNS_REF), |
@@ -341,8 +362,8 @@ static const ast_flag_info flag_info[] = { |
341 | 362 | { ZEND_AST_CLOSURE, 1, func_flags }, |
342 | 363 | { ZEND_AST_ARROW_FUNC, 1, func_flags }, |
343 | 364 | { ZEND_AST_PROPERTY_HOOK, 1, func_flags }, |
344 | | - { ZEND_AST_PROP_DECL, 1, modifier_flags }, |
345 | | - { ZEND_AST_PROP_GROUP, 1, modifier_flags }, |
| 365 | + { ZEND_AST_PROP_DECL, 1, property_modifier_flags }, |
| 366 | + { ZEND_AST_PROP_GROUP, 1, property_modifier_flags }, |
346 | 367 | { ZEND_AST_CLASS_CONST_DECL, 1, modifier_flags }, |
347 | 368 | { ZEND_AST_CLASS_CONST_GROUP, 1, modifier_flags }, |
348 | 369 | { ZEND_AST_TRAIT_ALIAS, 1, modifier_flags }, |
@@ -1466,6 +1487,9 @@ PHP_MINIT_FUNCTION(ast) { |
1466 | 1487 | ast_register_flag_constant("MODIFIER_ABSTRACT", ZEND_ACC_ABSTRACT); |
1467 | 1488 | ast_register_flag_constant("MODIFIER_FINAL", ZEND_ACC_FINAL); |
1468 | 1489 | ast_register_flag_constant("MODIFIER_READONLY", ZEND_ACC_READONLY); |
| 1490 | + ast_register_flag_constant("MODIFIER_PUBLIC_SET", MODIFIER_PUBLIC_SET); |
| 1491 | + ast_register_flag_constant("MODIFIER_PROTECTED_SET", MODIFIER_PROTECTED_SET); |
| 1492 | + ast_register_flag_constant("MODIFIER_PRIVATE_SET", MODIFIER_PRIVATE_SET); |
1469 | 1493 |
|
1470 | 1494 | ast_register_flag_constant("PARAM_MODIFIER_PUBLIC", PARAM_MODIFIER_PUBLIC); |
1471 | 1495 | ast_register_flag_constant("PARAM_MODIFIER_PROTECTED", PARAM_MODIFIER_PROTECTED); |
|
0 commit comments