diff options
| author | Ronan <ro.cailleau@gmail.com> | 2025-04-26 21:04:01 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-26 12:04:01 -0700 |
| commit | a5efbb1b775afb2f6b29b37d39947c41744bb005 (patch) | |
| tree | ae5c1e11544d2411816ee6fcfb29b2820d41fcb0 /source/slang/slang-ast-decl.cpp | |
| parent | d84aeeffdba388aec7a781c35973bf404d37fe80 (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.cpp | 14 |
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); |
