Lines Matching defs:scopes
25 static void AddScopes(ir::AstNode *node, std::set<varbinder::Scope *> &scopes) noexcept
28 scopes.emplace(node->Scope()->AsFunctionScope()->ParamScope());
31 scopes.emplace(node->Scope()->AsCatchScope()->ParamScope());
34 scopes.emplace(node->Scope()->AsLoopScope()->DeclScope());
36 scopes.emplace(node->Scope());
39 static varbinder::Variable *FindVariable(ir::Identifier *ident, std::set<varbinder::Scope *> const &scopes) noexcept
46 for (auto it = scopes.crbegin(); it != scopes.crend(); ++it) {
59 if (scopes.find(scope) != scopes.cend()) {
70 auto scopes = std::set<varbinder::Scope *> {};
77 std::swap(scopes, savedScopes);
83 std::swap(scopes, savedScopes);
90 AddScopes(node, scopes);
92 if (auto *var = FindVariable(node->AsIdentifier(), scopes); var != nullptr) {