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