Skip to content

Commit

Permalink
Revert "bug symfony#29597 [DI] fix reporting bindings on overriden se…
Browse files Browse the repository at this point in the history
…rvices as unused"

This reverts commit e07ad2b
  • Loading branch information
mmarynich committed Jan 11, 2019
1 parent 2c9a371 commit 05388c0
Show file tree
Hide file tree
Showing 8 changed files with 22 additions and 74 deletions.
Expand Up @@ -34,8 +34,6 @@ class ResolveBindingsPass extends AbstractRecursivePass
*/
public function process(ContainerBuilder $container)
{
$this->usedBindings = $container->getRemovedBindingIds();

try {
parent::process($container);

Expand Down
46 changes: 7 additions & 39 deletions src/Symfony/Component/DependencyInjection/ContainerBuilder.php
Expand Up @@ -124,8 +124,6 @@ class ContainerBuilder extends Container implements TaggedContainerInterface

private $removedIds = array();

private $removedBindingIds = array();

private static $internalTypes = array(
'int' => true,
'float' => true,
Expand Down Expand Up @@ -502,8 +500,7 @@ public function set($id, $service)
throw new BadMethodCallException(sprintf('Setting service "%s" for an unknown or non-synthetic service definition on a compiled container is not allowed.', $id));
}

$this->removeId($id);
unset($this->removedIds[$id]);
unset($this->definitions[$id], $this->aliasDefinitions[$id], $this->removedIds[$id]);

parent::set($id, $service);
}
Expand All @@ -516,7 +513,8 @@ public function set($id, $service)
public function removeDefinition($id)
{
if (isset($this->definitions[$id = (string) $id])) {
$this->removeId($id);
unset($this->definitions[$id]);
$this->removedIds[$id] = true;
}
}

Expand Down Expand Up @@ -838,8 +836,7 @@ public function setAlias($alias, $id)
throw new InvalidArgumentException(sprintf('An alias can not reference itself, got a circular reference on "%s".', $alias));
}

$this->removeId($alias);
unset($this->removedIds[$alias]);
unset($this->definitions[$alias], $this->removedIds[$alias]);

return $this->aliasDefinitions[$alias] = $id;
}
Expand All @@ -852,7 +849,8 @@ public function setAlias($alias, $id)
public function removeAlias($alias)
{
if (isset($this->aliasDefinitions[$alias = (string) $alias])) {
$this->removeId($alias);
unset($this->aliasDefinitions[$alias]);
$this->removedIds[$alias] = true;
}
}

Expand Down Expand Up @@ -981,8 +979,7 @@ public function setDefinition($id, Definition $definition)

$id = (string) $id;

$this->removeId($id);
unset($this->removedIds[$id]);
unset($this->aliasDefinitions[$id], $this->removedIds[$id]);

return $this->definitions[$id] = $definition;
}
Expand Down Expand Up @@ -1511,18 +1508,6 @@ public static function getInitializedConditionals($value)
return $services;
}

/**
* Gets removed binding ids.
*
* @return array
*
* @internal
*/
public function getRemovedBindingIds()
{
return $this->removedBindingIds;
}

/**
* Computes a reasonably unique hash of a value.
*
Expand Down Expand Up @@ -1627,21 +1612,4 @@ private function inVendors($path)

return false;
}

private function removeId($id)
{
$this->removedIds[$id] = true;
unset($this->aliasDefinitions[$id]);

if (!isset($this->definitions[$id])) {
return;
}

foreach ($this->definitions[$id]->getBindings() as $binding) {
list(, $identifier) = $binding->getValues();
$this->removedBindingIds[$identifier] = true;
}

unset($this->definitions[$id]);
}
}
Expand Up @@ -112,24 +112,6 @@ public function testScalarSetter()
$this->assertEquals(array(array('setDefaultLocale', array('fr'))), $definition->getMethodCalls());
}

public function testOverriddenBindings()
{
$container = new ContainerBuilder();

$binding = new BoundArgument('bar');

$container->register('foo', 'stdClass')
->setBindings(array('$foo' => clone $binding));
$container->register('bar', 'stdClass')
->setBindings(array('$foo' => clone $binding));

$container->register('foo', 'stdClass');

(new ResolveBindingsPass())->process($container);

$this->assertInstanceOf('stdClass', $container->get('foo'));
}

public function testTupleBinding()
{
$container = new ContainerBuilder();
Expand Down
Expand Up @@ -399,7 +399,7 @@ protected function process(ContainerBuilder $container)

/**
* @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException
* @expectedExceptionMessageRegExp /^Circular reference detected for service "a", path: "a -> c -> b -> a"./
* @expectedExceptionMessageRegExp /^Circular reference detected for service "c", path: "c -> b -> a -> c"./
*/
public function testProcessDetectsChildDefinitionIndirectCircularReference()
{
Expand Down
Expand Up @@ -559,7 +559,7 @@ public function testMerge()
$config->setDefinition('baz', new Definition('BazClass'));
$config->setAlias('alias_for_foo', 'foo');
$container->merge($config);
$this->assertEquals(array('foo', 'bar', 'service_container', 'baz'), array_keys($container->getDefinitions()), '->merge() merges definitions already defined ones');
$this->assertEquals(array('service_container', 'foo', 'bar', 'baz'), array_keys($container->getDefinitions()), '->merge() merges definitions already defined ones');

$aliases = $container->getAliases();
$this->assertArrayHasKey('alias_for_foo', $aliases);
Expand Down
Expand Up @@ -4,9 +4,6 @@ services:
class: Symfony\Component\DependencyInjection\ContainerInterface
public: true
synthetic: true
foo:
class: App\FooService
public: true
Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Foo:
class: Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Foo
public: true
Expand All @@ -19,3 +16,6 @@ services:

shared: false
configurator: c
foo:
class: App\FooService
public: true
Expand Up @@ -4,22 +4,22 @@ services:
class: Symfony\Component\DependencyInjection\ContainerInterface
public: true
synthetic: true
Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Sub\Bar:
class: Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Sub\Bar
Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Foo:
class: Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Foo
public: true
tags:
- { name: foo }
- { name: baz }
deprecated: '%service_id%'
lazy: true
arguments: [1]
factory: f
Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Foo:
class: Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Foo
Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Sub\Bar:
class: Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Sub\Bar
public: true
tags:
- { name: foo }
- { name: baz }
deprecated: '%service_id%'
lazy: true
arguments: [1]
factory: f
Expand Up @@ -4,22 +4,22 @@ services:
class: Symfony\Component\DependencyInjection\ContainerInterface
public: true
synthetic: true
Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Sub\Bar:
class: Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Sub\Bar
Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Foo:
class: Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Foo
public: true
tags:
- { name: foo }
- { name: baz }
deprecated: '%service_id%'
lazy: true
arguments: [1]
factory: f
Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Foo:
class: Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Foo
Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Sub\Bar:
class: Symfony\Component\DependencyInjection\Tests\Fixtures\Prototype\Sub\Bar
public: true
tags:
- { name: foo }
- { name: baz }
deprecated: '%service_id%'
lazy: true
arguments: [1]
factory: f

0 comments on commit 05388c0

Please sign in to comment.