62
62
use PHPStan \BetterReflection \Reflector \Reflector ;
63
63
use PHPStan \BetterReflection \SourceLocator \Ast \Strategy \NodeToReflection ;
64
64
use PHPStan \BetterReflection \SourceLocator \Located \LocatedSource ;
65
+ use PHPStan \DependencyInjection \AutowiredParameter ;
66
+ use PHPStan \DependencyInjection \AutowiredService ;
65
67
use PHPStan \DependencyInjection \Reflection \ClassReflectionExtensionRegistryProvider ;
66
68
use PHPStan \DependencyInjection \Type \DynamicThrowTypeExtensionProvider ;
67
69
use PHPStan \DependencyInjection \Type \ParameterClosureTypeExtensionProvider ;
223
225
use const PHP_VERSION_ID ;
224
226
use const SORT_NUMERIC ;
225
227
228
+ #[AutowiredService]
226
229
final class NodeScopeResolver
227
230
{
228
231
@@ -249,9 +252,11 @@ final class NodeScopeResolver
249
252
public function __construct (
250
253
private readonly ReflectionProvider $ reflectionProvider ,
251
254
private readonly InitializerExprTypeResolver $ initializerExprTypeResolver ,
255
+ #[AutowiredParameter(ref: '@nodeScopeResolverReflector ' )]
252
256
private readonly Reflector $ reflector ,
253
257
private readonly ClassReflectionExtensionRegistryProvider $ classReflectionExtensionRegistryProvider ,
254
258
private readonly ParameterOutTypeExtensionProvider $ parameterOutTypeExtensionProvider ,
259
+ #[AutowiredParameter(ref: '@defaultAnalysisParser ' )]
255
260
private readonly Parser $ parser ,
256
261
private readonly FileTypeMapper $ fileTypeMapper ,
257
262
private readonly StubPhpDocProvider $ stubPhpDocProvider ,
@@ -266,15 +271,23 @@ public function __construct(
266
271
private readonly ReadWritePropertiesExtensionProvider $ readWritePropertiesExtensionProvider ,
267
272
private readonly ParameterClosureTypeExtensionProvider $ parameterClosureTypeExtensionProvider ,
268
273
private readonly ScopeFactory $ scopeFactory ,
274
+ #[AutowiredParameter]
269
275
private readonly bool $ polluteScopeWithLoopInitialAssignments ,
276
+ #[AutowiredParameter]
270
277
private readonly bool $ polluteScopeWithAlwaysIterableForeach ,
278
+ #[AutowiredParameter]
271
279
private readonly bool $ polluteScopeWithBlock ,
280
+ #[AutowiredParameter]
272
281
private readonly array $ earlyTerminatingMethodCalls ,
282
+ #[AutowiredParameter]
273
283
private readonly array $ earlyTerminatingFunctionCalls ,
284
+ #[AutowiredParameter]
274
285
private readonly array $ universalObjectCratesClasses ,
286
+ #[AutowiredParameter(ref: '%exceptions.implicitThrows% ' )]
275
287
private readonly bool $ implicitThrows ,
288
+ #[AutowiredParameter]
276
289
private readonly bool $ treatPhpDocTypesAsCertain ,
277
- private readonly bool $ narrowMethodScopeFromConstructor ,
290
+ private readonly bool $ narrowMethodScopeFromConstructor = true ,
278
291
)
279
292
{
280
293
$ earlyTerminatingMethodNames = [];
0 commit comments