--- /dev/null
+--TEST--
+066: Name ambiguity (import name & internal class name)
+--FILE--
+<?php
+include __DIR__ . '/ns_027.inc';
+use Foo::Bar::Foo as stdClass;
+
+new stdClass();
+--EXPECT--
+Foo::Bar::Foo
--- /dev/null
+--TEST--
+067: Name ambiguity (import name & internal class name)
+--FILE--
+<?php
+include __DIR__ . '/ns_022.inc';
+include __DIR__ . '/ns_027.inc';
+include __DIR__ . '/ns_067.inc';
+--EXPECT--
+Foo::Bar::Foo
char *lcname;
zval *name, *ns, tmp;
zend_bool warn = 0;
+ zend_class_entry **pce;
if (!CG(current_import)) {
CG(current_import) = emalloc(sizeof(HashTable));
efree(tmp);
}
efree(ns_name);
- } else if (zend_hash_exists(CG(class_table), lcname, Z_STRLEN_P(name)+1)) {
+ } else if (zend_hash_find(CG(class_table), lcname, Z_STRLEN_P(name)+1, (void**)&pce) == SUCCESS &&
+ (*pce)->type == ZEND_USER_CLASS &&
+ (*pce)->filename == CG(compiled_filename)) {
char *tmp = zend_str_tolower_dup(Z_STRVAL_P(ns), Z_STRLEN_P(ns));
if (Z_STRLEN_P(ns) != Z_STRLEN_P(name) ||