Skip to content

Commit a49fe7d

Browse files
committed
add fixture
1 parent a9dfc5d commit a49fe7d

File tree

2 files changed

+49
-4
lines changed

2 files changed

+49
-4
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
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+
?>

rules/Configs/Rector/Closure/RemoveConstructorAutowireServiceRector.php

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -183,12 +183,15 @@ private function matchSetServicesClass(MethodCall $methodCall): ?string
183183
}
184184

185185
/** @var MethodCall $methodCall */
186-
$firstArg = $methodCall->getArgs()[0];
187-
if (! $firstArg->value instanceof ClassConstFetch) {
188-
return null;
186+
foreach ($methodCall->getArgs() as $arg) {
187+
if (! $arg->value instanceof ClassConstFetch) {
188+
continue;
189+
}
190+
191+
return $this->valueResolver->getValue($arg->value);
189192
}
190193

191-
return $this->valueResolver->getValue($firstArg->value);
194+
return null;
192195
}
193196

194197
private function isParameterTypeMatchingPassedArgExprClass(

0 commit comments

Comments
 (0)