diff options
Diffstat (limited to 'source/slang/slang-ast-decl.cpp')
| -rw-r--r-- | source/slang/slang-ast-decl.cpp | 16 |
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 |
