From: Pierre-Emmanuel Patry <[email protected]>
When we tried to insert a shadowable node and another shadowable node has
been inserted before, we didn't emit any error if the node has already
been inserted previously and failed silently.
gcc/rust/ChangeLog:
* resolve/rust-rib.cc (Rib::insert): Emit an error when trying to
insert an already inserted node.
Signed-off-by: Pierre-Emmanuel Patry <[email protected]>
---
gcc/rust/resolve/rust-rib.cc | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/gcc/rust/resolve/rust-rib.cc b/gcc/rust/resolve/rust-rib.cc
index 0a8fce34a1a..714507219e0 100644
--- a/gcc/rust/resolve/rust-rib.cc
+++ b/gcc/rust/resolve/rust-rib.cc
@@ -92,9 +92,9 @@ Rib::insert (std::string name, Definition def)
{
if (std::find (current.ids.cbegin (), current.ids.cend (), id)
== current.ids.cend ())
- {
- current.ids.push_back (id);
- }
+ current.ids.push_back (id);
+ else
+ return tl::make_unexpected (DuplicateNameError (name, id));
}
}
else if (it->second.shadowable)
--
2.45.2