$ids = array_keys($this->cloningIds);
$ids[] = $id;
- throw new ServiceCircularReferenceException($id, array_slice($ids, array_search($id, $ids)));
+ throw new ServiceCircularReferenceException($id, \array_slice($ids, array_search($id, $ids)));
}
$this->cloningIds[$id] = true;
*/
private function isInlineableDefinition($id, Definition $definition, ServiceReferenceGraph $graph)
{
+ if ($definition->getErrors() || $definition->isDeprecated() || $definition->isLazy() || $definition->isSynthetic()) {
+ return false;
+ }
+
if (!$definition->isShared()) {
return true;
}
- if ($definition->isDeprecated() || $definition->isPublic() || $definition->isPrivate() || $definition->isLazy()) {
+ if ($definition->isPublic() || $definition->isPrivate()) {
return false;
}
$ids[] = $edge->getSourceNode()->getId();
}
- if (count(array_unique($ids)) > 1) {
+ if (\count(array_unique($ids)) > 1) {
return false;
}
- if (count($ids) > 1 && is_array($factory = $definition->getFactory()) && ($factory[0] instanceof Reference || $factory[0] instanceof Definition)) {
+ if (\count($ids) > 1 && \is_array($factory = $definition->getFactory()) && ($factory[0] instanceof Reference || $factory[0] instanceof Definition)) {
return false;
}
- return $this->container->getDefinition($ids[0])->isShared();
+ return !$ids || $this->container->getDefinition($ids[0])->isShared();
}
}