From 8395acfa0ad8379011e4470b94362189cafac93f Mon Sep 17 00:00:00 2001 From: Yong He Date: Wed, 27 Mar 2024 12:21:07 -0700 Subject: Fix lookup to prevent finding `typedef` itself. (#3848) --- source/slang/slang-parser.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'source/slang/slang-parser.cpp') diff --git a/source/slang/slang-parser.cpp b/source/slang/slang-parser.cpp index b99df18e4..cc3a661f3 100644 --- a/source/slang/slang-parser.cpp +++ b/source/slang/slang-parser.cpp @@ -2576,11 +2576,20 @@ namespace Slang typeSpec.expr = parseFuncTypeExpr(parser); return typeSpec; } + + bool inGlobalScope = false; + if (AdvanceIf(parser, TokenType::Scope)) + { + inGlobalScope = true; + } Token typeName = parser->ReadToken(TokenType::Identifier); auto basicType = parser->astBuilder->create(); - basicType->scope = parser->currentLookupScope; + if (inGlobalScope) + basicType->scope = parser->currentModule->ownedScope; + else + basicType->scope = parser->currentLookupScope; basicType->loc = typeName.loc; basicType->name = typeName.getNameOrNull(); -- cgit v1.2.3