From 240fbd36f18efcec817b0b8ecd85763ec6abf007 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Thu, 12 Feb 2015 23:25:09 +0100 Subject: [PATCH] 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. --- ext/reflection/php_reflection.c | 2 +- .../reflectionclass_for_traits.phpt | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 ext/reflection/reflectionclass_for_traits.phpt 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) -- 2.50.1