summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-parser.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2024-02-20 15:37:11 -0800
committerGitHub <noreply@github.com>2024-02-20 15:37:11 -0800
commita62be597990966b9516995650baf750ee6a0146b (patch)
tree1741b3d5b5859319f278aa6ab821a2f801fd8e08 /source/slang/slang-parser.cpp
parent4d20fd329956ac89408b1628a8291fea01bc9a6d (diff)
Support link time type specialization. (#3604)
Diffstat (limited to 'source/slang/slang-parser.cpp')
-rw-r--r--source/slang/slang-parser.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/source/slang/slang-parser.cpp b/source/slang/slang-parser.cpp
index e0ffba53c..b89b93138 100644
--- a/source/slang/slang-parser.cpp
+++ b/source/slang/slang-parser.cpp
@@ -3232,6 +3232,9 @@ namespace Slang
inheritanceDecl->base = base;
AddMember(decl, inheritanceDecl);
+
+ if (parser->pendingModifiers->hasModifier<ExternModifier>())
+ addModifier(inheritanceDecl, parser->astBuilder->create<ExternModifier>());
} while (AdvanceIf(parser, TokenType::Comma));
}
@@ -4730,6 +4733,8 @@ namespace Slang
// We allow for an inheritance clause on a `struct`
// so that it can conform to interfaces.
parseOptionalInheritanceClause(this, rs);
+ if (AdvanceIf(this, TokenType::Semicolon))
+ return rs;
parseDeclBody(this, rs);
return rs;
});