static zend_class_entry *lookup_class(
zend_class_entry *scope, zend_string *name, zend_bool register_unresolved) {
- zend_class_entry *ce;
+ uint32_t flags = ZEND_FETCH_CLASS_ALLOW_UNLINKED | ZEND_FETCH_CLASS_NO_AUTOLOAD;
+ zend_class_entry *ce = zend_lookup_class_ex(name, NULL, flags);
if (!CG(in_compilation)) {
- uint32_t flags = ZEND_FETCH_CLASS_ALLOW_UNLINKED | ZEND_FETCH_CLASS_NO_AUTOLOAD;
- ce = zend_lookup_class_ex(name, NULL, flags);
if (ce) {
return ce;
}
zend_hash_add_empty_element(CG(delayed_autoloads), name);
}
} else {
- ce = zend_lookup_class_ex(name, NULL, ZEND_FETCH_CLASS_NO_AUTOLOAD);
if (ce && class_visible(ce)) {
return ce;
}
public function method($a): self {}
public function method2($a): C {}
public function method3($a): object {}
+ public function method4(D $a) {}
}
class D extends C {
public function method($a): self {}
public function method2($a): D {}
public function method3($a): stdClass {}
+ public function method4(C $a) {}
}
// Works.