From: Pierre-Emmanuel Patry <[email protected]>
We need the top level to run at least once before breaking because it
will be required by the other name resolution steps.
gcc/rust/ChangeLog:
* rust-session-manager.cc (Session::expansion): Break on error after
top level name resolution.
Signed-off-by: Pierre-Emmanuel Patry <[email protected]>
---
gcc/rust/rust-session-manager.cc | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/gcc/rust/rust-session-manager.cc b/gcc/rust/rust-session-manager.cc
index 5668d4d65d3..11ff25062d0 100644
--- a/gcc/rust/rust-session-manager.cc
+++ b/gcc/rust/rust-session-manager.cc
@@ -925,9 +925,6 @@ Session::expansion (AST::Crate &crate,
Resolver2_0::NameResolutionContext &ctx)
{
CfgStrip ().go (crate);
// Errors might happen during cfg strip pass
- if (saw_errors ())
- break;
-
bool visitor_dirty = false;
if (flag_name_resolution_2_0)
@@ -940,6 +937,9 @@ Session::expansion (AST::Crate &crate,
Resolver2_0::NameResolutionContext &ctx)
else
Resolver::EarlyNameResolver ().go (crate);
+ if (saw_errors ())
+ break;
+
ExpandVisitor (expander).go (crate);
fixed_point_reached = !expander.has_changed () && !visitor_dirty;
--
2.45.2