mirror of
https://github.com/zeek/zeek.git
synced 2025-10-04 15:48:19 +00:00
Move a few low-use classes to namespaces
This commit is contained in:
parent
886fc102b8
commit
c9ab1f93e7
53 changed files with 252 additions and 122 deletions
22
src/Var.cc
22
src/Var.cc
|
@ -659,53 +659,53 @@ void begin_func(zeek::detail::IDPtr id, const char* module_name,
|
|||
zeek::detail::current_scope()->GetID()->MakeDeprecated(depr_attr->GetExpr());
|
||||
}
|
||||
|
||||
class OuterIDBindingFinder : public TraversalCallback {
|
||||
class OuterIDBindingFinder : public zeek::detail::TraversalCallback {
|
||||
public:
|
||||
OuterIDBindingFinder(zeek::detail::Scope* s)
|
||||
{
|
||||
scopes.emplace_back(s);
|
||||
}
|
||||
|
||||
TraversalCode PreExpr(const zeek::detail::Expr*) override;
|
||||
TraversalCode PostExpr(const zeek::detail::Expr*) override;
|
||||
zeek::detail::TraversalCode PreExpr(const zeek::detail::Expr*) override;
|
||||
zeek::detail::TraversalCode PostExpr(const zeek::detail::Expr*) override;
|
||||
|
||||
std::vector<zeek::detail::Scope*> scopes;
|
||||
std::vector<const zeek::detail::NameExpr*> outer_id_references;
|
||||
};
|
||||
|
||||
TraversalCode OuterIDBindingFinder::PreExpr(const zeek::detail::Expr* expr)
|
||||
zeek::detail::TraversalCode OuterIDBindingFinder::PreExpr(const zeek::detail::Expr* expr)
|
||||
{
|
||||
if ( expr->Tag() == zeek::detail::EXPR_LAMBDA )
|
||||
{
|
||||
auto le = static_cast<const zeek::detail::LambdaExpr*>(expr);
|
||||
scopes.emplace_back(le->GetScope());
|
||||
return TC_CONTINUE;
|
||||
return zeek::detail::TC_CONTINUE;
|
||||
}
|
||||
|
||||
if ( expr->Tag() != zeek::detail::EXPR_NAME )
|
||||
return TC_CONTINUE;
|
||||
return zeek::detail::TC_CONTINUE;
|
||||
|
||||
auto* e = static_cast<const zeek::detail::NameExpr*>(expr);
|
||||
|
||||
if ( e->Id()->IsGlobal() )
|
||||
return TC_CONTINUE;
|
||||
return zeek::detail::TC_CONTINUE;
|
||||
|
||||
for ( const auto& scope : scopes )
|
||||
if ( scope->Find(e->Id()->Name()) )
|
||||
// Shadowing is not allowed, so if it's found at inner scope, it's
|
||||
// not something we have to worry about also being at outer scope.
|
||||
return TC_CONTINUE;
|
||||
return zeek::detail::TC_CONTINUE;
|
||||
|
||||
outer_id_references.push_back(e);
|
||||
return TC_CONTINUE;
|
||||
return zeek::detail::TC_CONTINUE;
|
||||
}
|
||||
|
||||
TraversalCode OuterIDBindingFinder::PostExpr(const zeek::detail::Expr* expr)
|
||||
zeek::detail::TraversalCode OuterIDBindingFinder::PostExpr(const zeek::detail::Expr* expr)
|
||||
{
|
||||
if ( expr->Tag() == zeek::detail::EXPR_LAMBDA )
|
||||
scopes.pop_back();
|
||||
|
||||
return TC_CONTINUE;
|
||||
return zeek::detail::TC_CONTINUE;
|
||||
}
|
||||
|
||||
void end_func(zeek::detail::StmtPtr body)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue