diff --git a/src/Symfony/Component/DependencyInjection/Compiler/PassConfig.php b/src/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
index 6daa4b754644..c03ff9deb71d 100644
--- a/src/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
+++ b/src/Symfony/Component/DependencyInjection/Compiler/PassConfig.php
@@ -63,7 +63,6 @@ public function __construct()
new RemoveUnusedDefinitionsPass(),
)),
new CheckExceptionOnInvalidReferenceBehaviorPass(),
- new CheckCircularReferencesPass(),
);
}
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php b/src/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php
index c4eee4033ef9..c4479403aa3d 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/Compiler/IntegrationTest.php
@@ -113,30 +113,4 @@ public function testProcessInlinesWhenThereAreMultipleReferencesButFromTheSameDe
$this->assertFalse($container->hasDefinition('b'));
$this->assertFalse($container->hasDefinition('c'), 'Service C was not inlined.');
}
-
- /**
- * @expectedException \Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException
- */
- public function testCircularReferencesCausedByMethodCallsAreDetectedDuringCompilation()
- {
- $container = new ContainerBuilder();
- $container->setResourceTracking(false);
-
- $container
- ->register('foobar', '\stdClass')
- ->addArgument(new Reference('foo'))
- ;
-
- $container
- ->register('foo', '\stdClass')
- ->addArgument(new Reference('bar'))
- ;
-
- $container
- ->register('foo', '\stdClass')
- ->addMethodCall('addFoobar', array(new Reference('foobar')))
- ;
-
- $container->compile();
- }
}
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php
index 3db661cf8c45..695f2875ffdf 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/containers/container9.php
@@ -64,6 +64,7 @@
;
$container
->register('baz', 'Baz')
+ ->addMethodCall('setFoo', array(new Reference('foo_with_inline')))
;
$container
->register('request', 'Request')
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services9.dot b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services9.dot
index 49de5aa2f59b..b3b424e2e73c 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services9.dot
+++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/graphviz/services9.dot
@@ -36,5 +36,6 @@ digraph sc {
node_method_call1 -> node_foobaz [label="setBar()" style="dashed"];
node_foo_with_inline -> node_inlined [label="setBar()" style="dashed"];
node_inlined -> node_baz [label="setBaz()" style="dashed"];
+ node_baz -> node_foo_with_inline [label="setFoo()" style="dashed"];
node_configurator_service -> node_baz [label="setFoo()" style="dashed"];
}
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php
index 107812974cbd..ce8930b8ddeb 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php
@@ -80,7 +80,11 @@ protected function getBarService()
*/
protected function getBazService()
{
- return $this->services['baz'] = new \Baz();
+ $this->services['baz'] = $instance = new \Baz();
+
+ $instance->setFoo($this->get('foo_with_inline'));
+
+ return $instance;
}
/**
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php
index 9592ed87af81..559560fa6da6 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php
+++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php
@@ -99,7 +99,11 @@ protected function getBarService()
*/
protected function getBazService()
{
- return $this->services['baz'] = new \Baz();
+ $this->services['baz'] = $instance = new \Baz();
+
+ $instance->setFoo($this->get('foo_with_inline'));
+
+ return $instance;
}
/**
@@ -223,11 +227,12 @@ protected function getFooBarService()
protected function getFooWithInlineService()
{
$a = new \Bar();
- $a->pub = 'pub';
- $a->setBaz($this->get('baz'));
$this->services['foo_with_inline'] = $instance = new \Foo();
+ $a->pub = 'pub';
+ $a->setBaz($this->get('baz'));
+
$instance->setBar($a);
return $instance;
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml
index f2dadb42471a..cba6814126f8 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml
+++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/xml/services9.xml
@@ -70,7 +70,11 @@
-
+
+
+
+
+
diff --git a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml
index a7a323485587..84f62d25c0fd 100644
--- a/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml
+++ b/src/Symfony/Component/DependencyInjection/Tests/Fixtures/yaml/services9.yml
@@ -52,6 +52,8 @@ services:
baz:
class: Baz
+ calls:
+ - [setFoo, ['@foo_with_inline']]
request:
class: Request