@@ -269,6 +269,8 @@ function (Node $node) use ($fileName, $lookForTrait, &$traitFound, $traitMethodA
269
269
}
270
270
271
271
$ traitFound = true ;
272
+ $ typeAliasStack [] = $ this ->getTypeAliasesMap ($ node ->getDocComment ());
273
+ $ functionStack [] = null ;
272
274
} else {
273
275
if ($ node ->name === null ) {
274
276
if (!$ node instanceof Node \Stmt \Class_) {
@@ -304,12 +306,12 @@ function (Node $node) use ($fileName, $lookForTrait, &$traitFound, $traitMethodA
304
306
if ($ node instanceof Node \Stmt \ClassLike || $ node instanceof Node \Stmt \ClassMethod || $ node instanceof Node \Stmt \Function_) {
305
307
$ phpDocString = GetLastDocComment::forNode ($ node );
306
308
if ($ phpDocString !== null ) {
307
- $ typeMapStack [] = function () use ($ namespace , $ uses , $ className , $ functionName , $ phpDocString , $ typeMapStack , $ typeAliasStack , $ constUses ): TemplateTypeMap {
309
+ $ typeMapStack [] = function () use ($ namespace , $ uses , $ className , $ lookForTrait , $ functionName , $ phpDocString , $ typeMapStack , $ typeAliasStack , $ constUses ): TemplateTypeMap {
308
310
$ phpDocNode = $ this ->resolvePhpDocStringToDocNode ($ phpDocString );
309
311
$ typeMapCb = $ typeMapStack [count ($ typeMapStack ) - 1 ] ?? null ;
310
312
$ currentTypeMap = $ typeMapCb !== null ? $ typeMapCb () : null ;
311
313
$ typeAliasesMap = $ typeAliasStack [count ($ typeAliasStack ) - 1 ] ?? [];
312
- $ nameScope = new NameScope ($ namespace , $ uses , $ className , $ functionName , $ currentTypeMap , $ typeAliasesMap , false , $ constUses );
314
+ $ nameScope = new NameScope ($ namespace , $ uses , $ className , $ functionName , $ currentTypeMap , $ typeAliasesMap , false , $ constUses, $ lookForTrait );
313
315
$ templateTags = $ this ->phpDocNodeResolver ->resolveTemplateTags ($ phpDocNode , $ nameScope );
314
316
$ templateTypeScope = $ nameScope ->getTemplateTypeScope ();
315
317
if ($ templateTypeScope === null ) {
@@ -355,6 +357,7 @@ function (Node $node) use ($fileName, $lookForTrait, &$traitFound, $traitMethodA
355
357
$ typeAliasesMap ,
356
358
false ,
357
359
$ constUses ,
360
+ $ lookForTrait ,
358
361
);
359
362
}
360
363
@@ -492,8 +495,8 @@ function (Node $node) use ($fileName, $lookForTrait, &$traitFound, $traitMethodA
492
495
493
496
return null ;
494
497
},
495
- static function (Node $ node , $ callbackResult ) use ($ lookForTrait , &$ namespace , &$ functionStack , &$ classStack , &$ typeAliasStack , &$ uses , &$ typeMapStack , &$ constUses ): void {
496
- if ($ node instanceof Node \Stmt \ClassLike && $ lookForTrait === null ) {
498
+ static function (Node $ node , $ callbackResult ) use (&$ namespace , &$ functionStack , &$ classStack , &$ typeAliasStack , &$ uses , &$ typeMapStack , &$ constUses ): void {
499
+ if ($ node instanceof Node \Stmt \ClassLike) {
497
500
if (count ($ classStack ) === 0 ) {
498
501
throw new ShouldNotHappenException ();
499
502
}
0 commit comments