morrisonlevi · GitHub

Conversation

@morrisonlevi

@morrisonlevi

@morrisonlevi

Closed

morrisonlevi

ZEND_ASSERT(!((fe->common.fn_flags & ZEND_ACC_CTOR)
&& ((proto->common.scope->ce_flags & ZEND_ACC_INTERFACE) == 0
&& (proto->common.fn_flags & ZEND_ACC_ABSTRACT) == 0)));
ZEND_ASSERT(!(fe->common.fn_flags & ZEND_ACC_CTOR) || !is_abstract_or_interface_method(proto));

Girgias

function method1() { parent::method1(); }
}

(new Class1())->method1();

Comment on lines +16 to +17


?>
--EXPECTF--
Fatal error: Type Class1 already has default method Interface1::method1(); cannot override it with another from Interface2 in %s on line %d

Comment on lines +1166 to +1169

/* Prevent derived classes from restricting access that was available in parent classes
* (except deriving from non-abstract ctors). */
uint32_t ppp_mask = ZEND_ACC_PPP_MASK;
if (!checked && check_visibility && (child_flags & ppp_mask) > (parent_flags & ppp_mask)) {
#define ZEND_CLASS_CONST_IS_CASE (1 << 6) /* | | | X */
/* | | | */
/* Class Flags (unused: 30,31) | | | */
/* Class Flags (unused: 31). | | | */

Read the original on github.com ↗