summaryrefslogtreecommitdiffstats
path: root/source/slang/slang-ast-decl.cpp
diff options
context:
space:
mode:
authorYong He <yonghe@outlook.com>2023-08-04 15:47:39 -0700
committerGitHub <noreply@github.com>2023-08-04 15:47:39 -0700
commita2d90fb275962da84611160f8ddd74d934a68dbd (patch)
tree066084537b9f4fe1f367de100ed6638a88a028c1 /source/slang/slang-ast-decl.cpp
parent17da4f0dec2b86ba3a4bdaf8a2ae112047d23623 (diff)
Redesign `DeclRef` and systematic `Val` deduplication (#3049)
* Redesign DeclRef + Deduplicate Val. * Update project files * Fix warning. * Fix. * Fix. * Remove `Val::_equalsImplOverride`. * Rmove `Val::_getHashCodeOverride`. * Remove `semanticVisitor` param from `resolve`. * Cleanups. --------- Co-authored-by: Yong He <yhe@nvidia.com>
Diffstat (limited to 'source/slang/slang-ast-decl.cpp')
-rw-r--r--source/slang/slang-ast-decl.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/source/slang/slang-ast-decl.cpp b/source/slang/slang-ast-decl.cpp
index 2f1c7c47e..9dbd006a0 100644
--- a/source/slang/slang-ast-decl.cpp
+++ b/source/slang/slang-ast-decl.cpp
@@ -4,6 +4,7 @@
#include <assert.h>
#include "slang-generated-ast-macro.h"
+#include "slang-ast-decl.h"
namespace Slang {
@@ -118,4 +119,21 @@ bool isLocalVar(const Decl* decl)
return false;
}
+ThisTypeDecl* InterfaceDecl::getThisTypeDecl()
+{
+ for (auto member : members)
+ {
+ if (auto thisTypeDeclCandidate = as<ThisTypeDecl>(member))
+ {
+ return thisTypeDeclCandidate;
+ }
+ }
+ SLANG_UNREACHABLE("InterfaceDecl does not have a ThisType decl.");
+}
+
+InterfaceDecl* ThisTypeConstraintDecl::getInterfaceDecl()
+{
+ return as<InterfaceDecl>(parentDecl->parentDecl);
+}
+
} // namespace Slang