Yaffs site version 1.1
[yaffs-website] / vendor / symfony / dependency-injection / Compiler / AutowirePass.php
index 07919b74d9fdfe212466d202ab2d2ef5dec42c4a..b2795485531615ff281e0fa7479a4bb5a86e7360 100644 (file)
@@ -116,7 +116,8 @@ class AutowirePass implements CompilerPassInterface
                 }
 
                 if (isset($this->autowired[$typeHint->name])) {
-                    return $this->autowired[$typeHint->name] ? new Reference($this->autowired[$typeHint->name]) : null;
+                    $arguments[$index] = $this->autowired[$typeHint->name] ? new Reference($this->autowired[$typeHint->name]) : null;
+                    continue;
                 }
 
                 if (null === $this->types) {
@@ -303,9 +304,28 @@ class AutowirePass implements CompilerPassInterface
 
         $class = $this->container->getParameterBag()->resolveValue($class);
 
+        if ($deprecated = $definition->isDeprecated()) {
+            $prevErrorHandler = set_error_handler(function ($level, $message, $file, $line) use (&$prevErrorHandler) {
+                return (E_USER_DEPRECATED === $level || !$prevErrorHandler) ? false : $prevErrorHandler($level, $message, $file, $line);
+            });
+        }
+
+        $e = null;
+
         try {
             $reflector = new \ReflectionClass($class);
-        } catch (\ReflectionException $e) {
+        } catch (\Exception $e) {
+        } catch (\Throwable $e) {
+        }
+
+        if ($deprecated) {
+            restore_error_handler();
+        }
+
+        if (null !== $e) {
+            if (!$e instanceof \ReflectionException) {
+                throw $e;
+            }
             $reflector = false;
         }