File tree Expand file tree Collapse file tree 2 files changed +52
-4
lines changed
rules-tests/Configs/Rector/Closure/RemoveConstructorAutowireServiceRector/Fixture
rules/Configs/Rector/Closure Expand file tree Collapse file tree 2 files changed +52
-4
lines changed Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace Rector \Symfony \Tests \Configs \Rector \Closure \RemoveConstructorAutowireServiceRector \Fixture ;
6+
7+ use Rector \Symfony \Tests \Configs \Rector \Closure \RemoveConstructorAutowireServiceRector \Source \AnotherClassWithoutConstructor ;
8+ use Rector \Symfony \Tests \Configs \Rector \Closure \RemoveConstructorAutowireServiceRector \Source \PassedAsDependency ;
9+ use Symfony \Component \DependencyInjection \Loader \Configurator \ContainerConfigurator ;
10+ use function Symfony \Component \DependencyInjection \Loader \Configurator \service ;
11+
12+ return static function (ContainerConfigurator $ containerConfigurator ): void {
13+ $ services = $ containerConfigurator ->services ();
14+
15+ $ services ->defaults ()->autowire ();
16+
17+ $ services ->set ('named-class ' , AnotherClassWithoutConstructor::class)
18+ ->arg ('$passedAsDependency ' , service (PassedAsDependency::class));
19+ };
20+
21+ ?>
22+ -----
23+ <?php
24+
25+ declare (strict_types=1 );
26+
27+ namespace Rector \Symfony \Tests \Configs \Rector \Closure \RemoveConstructorAutowireServiceRector \Fixture ;
28+
29+ use Rector \Symfony \Tests \Configs \Rector \Closure \RemoveConstructorAutowireServiceRector \Source \AnotherClassWithoutConstructor ;
30+ use Rector \Symfony \Tests \Configs \Rector \Closure \RemoveConstructorAutowireServiceRector \Source \PassedAsDependency ;
31+ use Symfony \Component \DependencyInjection \Loader \Configurator \ContainerConfigurator ;
32+ use function Symfony \Component \DependencyInjection \Loader \Configurator \service ;
33+
34+ return static function (ContainerConfigurator $ containerConfigurator ): void {
35+ $ services = $ containerConfigurator ->services ();
36+
37+ $ services ->defaults ()->autowire ();
38+
39+ $ services ->set ('named-class ' , AnotherClassWithoutConstructor::class);
40+ };
41+
42+ ?>
Original file line number Diff line number Diff line change @@ -182,13 +182,19 @@ private function matchSetServicesClass(MethodCall $methodCall): ?string
182182 $ methodCall = $ methodCall ->var ;
183183 }
184184
185- /** @var MethodCall $methodCall */
186- $ firstArg = $ methodCall ->getArgs ()[0 ];
187- if (! $ firstArg ->value instanceof ClassConstFetch) {
185+ if (! $ methodCall instanceof MethodCall) {
188186 return null ;
189187 }
190188
191- return $ this ->valueResolver ->getValue ($ firstArg ->value );
189+ foreach ($ methodCall ->getArgs () as $ arg ) {
190+ if (! $ arg ->value instanceof ClassConstFetch) {
191+ continue ;
192+ }
193+
194+ return $ this ->valueResolver ->getValue ($ arg ->value );
195+ }
196+
197+ return null ;
192198 }
193199
194200 private function isParameterTypeMatchingPassedArgExprClass (
You can’t perform that action at this time.
0 commit comments