summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-parser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-parser.cpp')
-rw-r--r--source/slang/slang-parser.cpp16
1 files changed, 6 insertions, 10 deletions
diff --git a/source/slang/slang-parser.cpp b/source/slang/slang-parser.cpp
index e1dce5731..ab69b66d8 100644
--- a/source/slang/slang-parser.cpp
+++ b/source/slang/slang-parser.cpp
@@ -3457,22 +3457,18 @@ namespace Slang
namespaceDecl = parser->astBuilder->create<NamespaceDecl>();
namespaceDecl->nameAndLoc = nameAndLoc;
namespaceDecl->loc = nameAndLoc.loc;
+ AddMember(parentDecl, namespaceDecl);
+ if (auto parentNamespace = as<NamespaceDecl>(parentDecl))
+ {
+ parser->PushScope(parentDecl);
+ nestedNamespaceDecls.add(parentNamespace);
+ }
}
}
if (!result)
{
result = namespaceDecl;
}
- else if (parentDecl)
- {
- if (auto parentNamespace = as<NamespaceDecl>(parentDecl))
- {
- parser->PushScope(parentDecl);
- nestedNamespaceDecls.add(parentNamespace);
- }
- AddMember(parentDecl, namespaceDecl);
- }
-
parentDecl = namespaceDecl;
} while (AdvanceIf(parser, TokenType::Dot) || AdvanceIf(parser, TokenType::Scope));