aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/resolve/rust-name-resolver.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/rust/resolve/rust-name-resolver.h')
-rw-r--r--gcc/rust/resolve/rust-name-resolver.h15
1 files changed, 9 insertions, 6 deletions
diff --git a/gcc/rust/resolve/rust-name-resolver.h b/gcc/rust/resolve/rust-name-resolver.h
index 1b26a46..6fac3d3 100644
--- a/gcc/rust/resolve/rust-name-resolver.h
+++ b/gcc/rust/resolve/rust-name-resolver.h
@@ -335,27 +335,30 @@ public:
return it->second.size ();
}
- void iterate_name_ribs (std::function<void (Rib *)> cb)
+ void iterate_name_ribs (std::function<bool (Rib *)> cb)
{
for (auto it = name_ribs.begin (); it != name_ribs.end (); it++)
- cb (it->second);
+ if (!cb (it->second))
+ break;
}
- void iterate_type_ribs (std::function<void (Rib *)> cb)
+ void iterate_type_ribs (std::function<bool (Rib *)> cb)
{
for (auto it = type_ribs.begin (); it != type_ribs.end (); it++)
{
if (it->first == global_type_node_id)
continue;
- cb (it->second);
+ if (!cb (it->second))
+ break;
}
}
- void iterate_label_ribs (std::function<void (Rib *)> cb)
+ void iterate_label_ribs (std::function<bool (Rib *)> cb)
{
for (auto it = label_ribs.begin (); it != label_ribs.end (); it++)
- cb (it->second);
+ if (!cb (it->second))
+ break;
}
private: