summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-ast-decl.cpp
diff options
context:
space:
mode:
authorRonan <ro.cailleau@gmail.com>2025-04-26 21:04:01 +0200
committerGitHub <noreply@github.com>2025-04-26 12:04:01 -0700
commita5efbb1b775afb2f6b29b37d39947c41744bb005 (patch)
treeae5c1e11544d2411816ee6fcfb29b2820d41fcb0 /source/slang/slang-ast-decl.cpp
parentd84aeeffdba388aec7a781c35973bf404d37fe80 (diff)
Added getCanonicalGenericConstraints2 (sorts constraints and allows more generic expressions) (#6787)
Diffstat (limited to 'source/slang/slang-ast-decl.cpp')
-rw-r--r--source/slang/slang-ast-decl.cpp14
1 files changed, 14 insertions, 0 deletions
diff --git a/source/slang/slang-ast-decl.cpp b/source/slang/slang-ast-decl.cpp
index 530f983d9..4c5d32f71 100644
--- a/source/slang/slang-ast-decl.cpp
+++ b/source/slang/slang-ast-decl.cpp
@@ -105,6 +105,20 @@ void ContainerDecl::buildMemberDictionary()
SLANG_ASSERT(isMemberDictionaryValid());
}
+Index ContainerDecl::getDeclIndex(Decl* decl)
+{
+ if (Index* ptr = mapDeclMemberToIndex.tryGetValue(decl))
+ {
+ return *ptr;
+ }
+ Index res = members.findFirstIndex([&](Decl* d) { return d == decl; });
+ if (res >= Index(0))
+ {
+ mapDeclMemberToIndex[decl] = res;
+ }
+ return res;
+}
+
bool isLocalVar(const Decl* decl)
{
const auto varDecl = as<VarDecl>(decl);