Updated Drupal to 8.6. This goes with the following updates because it's possible...
[yaffs-website] / vendor / symfony / dependency-injection / Compiler / InlineServiceDefinitionsPass.php
index a79e78b6b2a4637bb8963b7047f8ec4a2d294515..05eb72d9746f4151eb99cdb95d9b1d5824abe6ea 100644 (file)
@@ -88,7 +88,7 @@ class InlineServiceDefinitionsPass extends AbstractRecursivePass implements Repe
             $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;
@@ -106,11 +106,15 @@ class InlineServiceDefinitionsPass extends AbstractRecursivePass implements Repe
      */
     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;
         }
 
@@ -130,14 +134,14 @@ class InlineServiceDefinitionsPass extends AbstractRecursivePass implements Repe
             $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();
     }
 }