diff options
Diffstat (limited to 'source/slang/slang-parser.cpp')
| -rw-r--r-- | source/slang/slang-parser.cpp | 16 |
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)); |
