diff options
| -rw-r--r-- | NEWS | 2 | ||||
| -rw-r--r-- | Zend/tests/bug51421.phpt | 18 | ||||
| -rw-r--r-- | Zend/zend_compile.c | 8 |
3 files changed, 2 insertions, 26 deletions
@@ -15,8 +15,6 @@ PHP NEWS (Felipe) - Fixed bug #52115 (mysqli_result::fetch_all returns null, not an empty array). (Andrey) -- Fixed bug #51421 (Abstract __construct constructor argument list not - enforced). (Felipe) - Fixed bug #48930 (__COMPILER_HALT_OFFSET__ incorrect in PHP >= 5.3). (Felipe) 17 Jun 2010, PHP 5.3.3 RC1 diff --git a/Zend/tests/bug51421.phpt b/Zend/tests/bug51421.phpt deleted file mode 100644 index 825012a289..0000000000 --- a/Zend/tests/bug51421.phpt +++ /dev/null @@ -1,18 +0,0 @@ ---TEST-- -Bug #51421 (Abstract __construct constructor argument list not enforced) ---FILE-- -<?php - -class ExampleClass {} - -abstract class TestInterface { - abstract public function __construct(ExampleClass $var); -} - -class Test extends TestInterface { - public function __construct() {} -} - -?> ---EXPECTF-- -Fatal error: Declaration of Test::__construct() must be compatible with that of TestInterface::__construct() in %s on line %d diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index ceb3f8584f..ac9d6e4be7 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -2540,12 +2540,8 @@ static zend_bool zend_do_perform_implementation_check(const zend_function *fe, c return 1; } - /* Checks for constructors only if they are declared in an interface, - * or explicitly marked as abstract - */ - if ((fe->common.fn_flags & ZEND_ACC_CTOR) - && ((proto->common.scope->ce_flags & ZEND_ACC_INTERFACE) == 0 - && (proto->common.fn_flags & ZEND_ACC_ABSTRACT) == 0)) { + /* Checks for constructors only if they are declared in an interface */ + if ((fe->common.fn_flags & ZEND_ACC_CTOR) && (proto->common.scope->ce_flags & ZEND_ACC_INTERFACE) == 0) { return 1; } |
