summaryrefslogtreecommitdiff
path: root/source/slang/slang-ast-decl.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-ast-decl.cpp')
-rw-r--r--source/slang/slang-ast-decl.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/source/slang/slang-ast-decl.cpp b/source/slang/slang-ast-decl.cpp
index 261378b9a..2f1c7c47e 100644
--- a/source/slang/slang-ast-decl.cpp
+++ b/source/slang/slang-ast-decl.cpp
@@ -102,4 +102,20 @@ void ContainerDecl::buildMemberDictionary()
SLANG_ASSERT(isMemberDictionaryValid());
}
+bool isLocalVar(const Decl* decl)
+{
+ const auto varDecl = as<VarDecl>(decl);
+ if(!varDecl)
+ return false;
+ const Decl* pp = varDecl->parentDecl;
+ if(as<ScopeDecl>(pp))
+ return true;
+ while(auto genericDecl = as<GenericDecl>(pp))
+ pp = genericDecl->inner;
+ if(as<FunctionDeclBase>(pp))
+ return true;
+
+ return false;
+}
+
} // namespace Slang