protected function findType(array $instances, $qualifiedName)
{
$classOrInterfaceName = $this->extractTypeName($qualifiedName);
$namespaceName = $this->extractNamespaceName($qualifiedName);
$caseInsensitiveName = strtolower($classOrInterfaceName);
if (!isset($instances[$caseInsensitiveName])) {
return null;
}
// Check for exact match and return first matching instance
if (isset($instances[$caseInsensitiveName][$namespaceName])) {
return reset($instances[$caseInsensitiveName][$namespaceName]);
}
if (!$this->isDefault($namespaceName)) {
return null;
}
$classesOrInterfaces = reset($instances[$caseInsensitiveName]);
return reset($classesOrInterfaces);
}