+ $decoratingDefinitions[$inner] = $decoratedDefinition;
+ }
+
+ if (isset($decoratingDefinitions[$inner])) {
+ $decoratingDefinition = $decoratingDefinitions[$inner];
+ $definition->setTags(array_merge($decoratingDefinition->getTags(), $definition->getTags()));
+ $autowiringTypes = $decoratingDefinition->getAutowiringTypes(false);
+ if ($types = array_merge($autowiringTypes, $definition->getAutowiringTypes(false))) {
+ $definition->setAutowiringTypes($types);
+ }
+ $decoratingDefinition->setTags(array());
+ if ($autowiringTypes) {
+ $decoratingDefinition->setAutowiringTypes(array());
+ }
+ $decoratingDefinitions[$inner] = $definition;