@@ -269,6 +269,8 @@ function (Node $node) use ($fileName, $lookForTrait, &$traitFound, $traitMethodA
269269 }
270270
271271 $ traitFound = true ;
272+ $ typeAliasStack [] = $ this ->getTypeAliasesMap ($ node ->getDocComment ());
273+ $ functionStack [] = null ;
272274 } else {
273275 if ($ node ->name === null ) {
274276 if (!$ node instanceof Node \Stmt \Class_) {
@@ -304,12 +306,12 @@ function (Node $node) use ($fileName, $lookForTrait, &$traitFound, $traitMethodA
304306 if ($ node instanceof Node \Stmt \ClassLike || $ node instanceof Node \Stmt \ClassMethod || $ node instanceof Node \Stmt \Function_) {
305307 $ phpDocString = GetLastDocComment::forNode ($ node );
306308 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 {
308310 $ phpDocNode = $ this ->resolvePhpDocStringToDocNode ($ phpDocString );
309311 $ typeMapCb = $ typeMapStack [count ($ typeMapStack ) - 1 ] ?? null ;
310312 $ currentTypeMap = $ typeMapCb !== null ? $ typeMapCb () : null ;
311313 $ 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 );
313315 $ templateTags = $ this ->phpDocNodeResolver ->resolveTemplateTags ($ phpDocNode , $ nameScope );
314316 $ templateTypeScope = $ nameScope ->getTemplateTypeScope ();
315317 if ($ templateTypeScope === null ) {
@@ -355,6 +357,7 @@ function (Node $node) use ($fileName, $lookForTrait, &$traitFound, $traitMethodA
355357 $ typeAliasesMap ,
356358 false ,
357359 $ constUses ,
360+ $ lookForTrait ,
358361 );
359362 }
360363
@@ -492,8 +495,8 @@ function (Node $node) use ($fileName, $lookForTrait, &$traitFound, $traitMethodA
492495
493496 return null ;
494497 },
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) {
497500 if (count ($ classStack ) === 0 ) {
498501 throw new ShouldNotHappenException ();
499502 }
0 commit comments