From: Nikita Popov Date: Thu, 12 Feb 2015 22:25:09 +0000 (+0100) Subject: Add test to ensure ReflectionClass works correctly with traits X-Git-Tag: PRE_PHP7_EREG_MYSQL_REMOVALS~171 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=240fbd36f18efcec817b0b8ecd85763ec6abf007;p=php Add test to ensure ReflectionClass works correctly with traits Some of these were not working correctly before Guilherme's patch. Another was broken by it and is fixed in this commit as well. --- diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index 309b10c1bb..1f16c4da78 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -4084,7 +4084,7 @@ ZEND_METHOD(reflection_class, isInstantiable) return; } GET_REFLECTION_OBJECT_PTR(ce); - if (ce->ce_flags & (ZEND_ACC_INTERFACE | ZEND_ACC_EXPLICIT_ABSTRACT_CLASS | ZEND_ACC_IMPLICIT_ABSTRACT_CLASS)) { + if (ce->ce_flags & (ZEND_ACC_INTERFACE | ZEND_ACC_TRAIT | ZEND_ACC_EXPLICIT_ABSTRACT_CLASS | ZEND_ACC_IMPLICIT_ABSTRACT_CLASS)) { RETURN_FALSE; } diff --git a/ext/reflection/reflectionclass_for_traits.phpt b/ext/reflection/reflectionclass_for_traits.phpt new file mode 100644 index 0000000000..526310a8b9 --- /dev/null +++ b/ext/reflection/reflectionclass_for_traits.phpt @@ -0,0 +1,20 @@ +--TEST-- +Tests some parts of ReflectionClass behavior for traits +--FILE-- +getModifiers())); +var_dump($r->isAbstract()); +var_dump($r->isInstantiable()); +var_dump($r->isCloneable()); + +?> +--EXPECT-- +array(0) { +} +bool(false) +bool(false) +bool(false)