summaryrefslogtreecommitdiff
path: root/ext/reflection/php_reflection.c
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2020-03-24 13:18:28 +0100
committerNikita Popov <nikita.ppv@gmail.com>2020-06-05 15:15:51 +0200
commit064b4644484d38e9dce40aef7e8e0e8190e9d863 (patch)
treeceb34fd4bc375ea0accdf3f8b1b15c389c7e103a /ext/reflection/php_reflection.c
parent91f283a0bfc6792d84fb9a6361e21f6f33769c4d (diff)
downloadphp-git-064b4644484d38e9dce40aef7e8e0e8190e9d863.tar.gz
Implement "Constructor Promotion" RFC
RFC: https://wiki.php.net/rfc/constructor_promotion Closes GH-5291.
Diffstat (limited to 'ext/reflection/php_reflection.c')
-rw-r--r--ext/reflection/php_reflection.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c
index 6d4f257eb4..d986f828f5 100644
--- a/ext/reflection/php_reflection.c
+++ b/ext/reflection/php_reflection.c
@@ -2870,6 +2870,22 @@ ZEND_METHOD(ReflectionParameter, isVariadic)
}
/* }}} */
+/* {{{ proto public bool ReflectionParameter::isPromoted()
+ Returns this constructor parameter has been promoted to a property */
+ZEND_METHOD(ReflectionParameter, isPromoted)
+{
+ reflection_object *intern;
+ parameter_reference *param;
+
+ if (zend_parse_parameters_none() == FAILURE) {
+ RETURN_THROWS();
+ }
+ GET_REFLECTION_OBJECT_PTR(param);
+
+ RETVAL_BOOL(ZEND_ARG_IS_PROMOTED(param->arg_info));
+}
+/* }}} */
+
/* {{{ proto public bool ReflectionType::allowsNull()
Returns whether parameter MAY be null */
ZEND_METHOD(ReflectionType, allowsNull)
@@ -5461,6 +5477,14 @@ ZEND_METHOD(ReflectionProperty, isDefault)
}
/* }}} */
+/* {{{ proto public bool ReflectionProperty::isPromoted()
+ Returns whether this property has been promoted from a constructor */
+ZEND_METHOD(ReflectionProperty, isPromoted)
+{
+ _property_check_flag(INTERNAL_FUNCTION_PARAM_PASSTHRU, ZEND_ACC_PROMOTED);
+}
+/* }}} */
+
/* {{{ proto public int ReflectionProperty::getModifiers()
Returns a bitfield of the access modifiers for this property */
ZEND_METHOD(ReflectionProperty, getModifiers)