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.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/source/slang/slang-parser.cpp b/source/slang/slang-parser.cpp
index a12f216b1..891db2867 100644
--- a/source/slang/slang-parser.cpp
+++ b/source/slang/slang-parser.cpp
@@ -4972,6 +4972,15 @@ static void CompleteDecl(
staticConstDecl->nameAndLoc = enumCase->nameAndLoc;
addModifier(staticConstDecl, parser->astBuilder->create<HLSLStaticModifier>());
addModifier(staticConstDecl, parser->astBuilder->create<ConstModifier>());
+
+ // Copy visibility modifiers from the enum declaration
+ if (auto visibilityModifier = modifiers.findModifier<VisibilityModifier>())
+ {
+ auto newVisibilityModifier = as<VisibilityModifier>(
+ parser->astBuilder->createByNodeType(visibilityModifier->astNodeType));
+ addModifier(staticConstDecl, newVisibilityModifier);
+ }
+
auto valueExpr = parser->astBuilder->create<VarExpr>();
valueExpr->declRef = DeclRef<Decl>(enumCase);
staticConstDecl->initExpr = valueExpr;