From: Owen Avery <[email protected]>

gcc/rust/ChangeLog:

        * checks/errors/borrowck/rust-bir-builder-internal.h: Remove
        inclusion of "rust-name-resolver.h".
        (BuilderContext::resolver): Change type to nr2.0 resolver.
        (BuilderContext::BuilderContext): Change initialization of
        resolver reference.
        (AbstractBuilder::resolve_label): Assume name resolution 2.0 is
        enabled.
        (AbstractBuilder::resolve_variable): Likewise.
        (AbstractBuilder::resolve_variable_or_fn): Likewise.

Signed-off-by: Owen Avery <[email protected]>
---
 .../borrowck/rust-bir-builder-internal.h      | 65 ++++---------------
 1 file changed, 13 insertions(+), 52 deletions(-)

diff --git a/gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h 
b/gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h
index e2cc2ddb0d8..de8a830cf87 100644
--- a/gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h
+++ b/gcc/rust/checks/errors/borrowck/rust-bir-builder-internal.h
@@ -24,7 +24,6 @@
 #include "rust-hir-item.h"
 #include "rust-hir-type-check.h"
 #include "rust-hir-visitor.h"
-#include "rust-name-resolver.h"
 #include "rust-bir.h"
 #include "rust-bir-free-region.h"
 #include "rust-immutable-name-resolution-context.h"
@@ -75,7 +74,7 @@ struct BuilderContext
 
   // External context.
   Resolver::TypeCheckContext &tyctx;
-  Resolver::Resolver &resolver;
+  const Resolver2_0::NameResolutionContext &resolver;
 
   // BIR output
   BasicBlocks basic_blocks;
@@ -104,7 +103,7 @@ struct BuilderContext
 public:
   BuilderContext ()
     : tyctx (*Resolver::TypeCheckContext::get ()),
-      resolver (*Resolver::Resolver::get ())
+      resolver (Resolver2_0::ImmutableNameResolutionContext::get ().resolver 
())
   {
     basic_blocks.emplace_back (); // StartBB
   }
@@ -403,69 +402,31 @@ protected: // HIR resolution helpers
 
   template <typename T> NodeId resolve_label (T &expr)
   {
-    NodeId resolved_label;
-    if (flag_name_resolution_2_0)
-      {
-       auto &nr_ctx
-         = Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
-       auto res = nr_ctx.lookup (expr.get_mappings ().get_nodeid ());
-       rust_assert (res.has_value ());
-       resolved_label = res.value ();
-      }
-    else
-      {
-       bool ok = ctx.resolver.lookup_resolved_label (
-         expr.get_mappings ().get_nodeid (), &resolved_label);
-       rust_assert (ok);
-      }
-    return resolved_label;
+    auto res = ctx.resolver.lookup (expr.get_mappings ().get_nodeid ());
+    rust_assert (res.has_value ());
+    return res.value ();
   }
 
   template <typename T> PlaceId resolve_variable (T &variable)
   {
-    NodeId variable_id;
-    if (flag_name_resolution_2_0)
-      {
-       auto &nr_ctx
-         = Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
-       auto res = nr_ctx.lookup (variable.get_mappings ().get_nodeid ());
-       rust_assert (res.has_value ());
-       variable_id = res.value ();
-      }
-    else
-      {
-       bool ok = ctx.resolver.lookup_resolved_name (
-         variable.get_mappings ().get_nodeid (), &variable_id);
-       rust_assert (ok);
-      }
-    return ctx.place_db.lookup_variable (variable_id);
+    auto res = ctx.resolver.lookup (variable.get_mappings ().get_nodeid ());
+    rust_assert (res.has_value ());
+    return ctx.place_db.lookup_variable (res.value ());
   }
 
   template <typename T>
   PlaceId resolve_variable_or_fn (T &variable, TyTy::BaseType *ty)
   {
     ty = (ty) ? ty : lookup_type (variable);
+
     // Unlike variables,
     // functions do not have to be declared in PlaceDB before use.
-    NodeId variable_id;
-    if (flag_name_resolution_2_0)
-      {
-       auto &nr_ctx
-         = Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
-       auto res = nr_ctx.lookup (variable.get_mappings ().get_nodeid ());
-       rust_assert (res.has_value ());
-       variable_id = res.value ();
-      }
-    else
-      {
-       bool ok = ctx.resolver.lookup_resolved_name (
-         variable.get_mappings ().get_nodeid (), &variable_id);
-       rust_assert (ok);
-      }
     if (ty->is<TyTy::FnType> ())
       return ctx.place_db.get_constant (ty);
-    else
-      return ctx.place_db.lookup_or_add_variable (variable_id, ty);
+
+    auto res = ctx.resolver.lookup (variable.get_mappings ().get_nodeid ());
+    rust_assert (res.has_value ());
+    return ctx.place_db.lookup_or_add_variable (res.value (), ty);
   }
 
 protected: // Implicit conversions.
-- 
2.50.1

Reply via email to