diff options
Diffstat (limited to 'source/slang/slang.cpp')
| -rw-r--r-- | source/slang/slang.cpp | 20 |
1 files changed, 7 insertions, 13 deletions
diff --git a/source/slang/slang.cpp b/source/slang/slang.cpp index d66e86b2d..daebddeae 100644 --- a/source/slang/slang.cpp +++ b/source/slang/slang.cpp @@ -2994,17 +2994,14 @@ static void collectExportedConstantInContainer( ASTBuilder* builder, ContainerDecl* containerDecl) { - for (auto m : containerDecl->members) + for (auto varMember : containerDecl->getDirectMemberDeclsOfType<VarDeclBase>()) { - auto varMember = as<VarDeclBase>(m); - if (!varMember) - continue; if (!varMember->val) continue; bool isExported = false; bool isConst = false; bool isExtern = false; - for (auto modifier : m->modifiers) + for (auto modifier : varMember->modifiers) { if (as<HLSLExportModifier>(modifier)) isExported = true; @@ -3018,14 +3015,14 @@ static void collectExportedConstantInContainer( } if (isExported && isConst) { - auto mangledName = getMangledName(builder, m); + auto mangledName = getMangledName(builder, varMember); if (isExtern && dict.containsKey(mangledName)) continue; dict[mangledName] = varMember->val; } } - for (auto member : containerDecl->members) + for (auto member : containerDecl->getDirectMemberDecls()) { if (as<NamespaceDecl>(member) || as<FileDecl>(member)) { @@ -5262,7 +5259,7 @@ void Module::_processFindDeclsExportSymbolsRec(Decl* decl) // If it's a container process it's children if (auto containerDecl = as<ContainerDecl>(decl)) { - for (auto child : containerDecl->members) + for (auto child : containerDecl->getDirectMemberDecls()) { _processFindDeclsExportSymbolsRec(child); } @@ -6809,12 +6806,9 @@ SlangResult Linkage::loadSerializedModuleContents( module->_discoverEntryPoints(sink, targets); // Hook up fileDecl's scope to module's scope. - for (auto globalDecl : moduleDecl->members) + for (auto fileDecl : moduleDecl->getDirectMemberDeclsOfType<FileDecl>()) { - if (auto fileDecl = as<FileDecl>(globalDecl)) - { - addSiblingScopeForContainerDecl(m_astBuilder, moduleDecl->ownedScope, fileDecl); - } + addSiblingScopeForContainerDecl(m_astBuilder, moduleDecl->ownedScope, fileDecl); } return SLANG_OK; |
