https://gcc.gnu.org/g:d3968ea82f6ecbb6bbad0d2d81d40529615126b3

commit d3968ea82f6ecbb6bbad0d2d81d40529615126b3
Author: Owen Avery <powerboat9.ga...@gmail.com>
Date:   Fri Nov 1 12:58:44 2024 -0400

    Remove usage of Resolver::get_builtin_types
    
    gcc/rust/ChangeLog:
    
            * backend/rust-compile-context.cc
            (Context::setup_builtins): Use TypeCheckContext::get_builtins
            instead of Resolver::get_builtin_types,
            TypeCheckContext::lookup_type_by_node_id, and
            TypeCheckContext::lookup_type.
            * typecheck/rust-hir-type-check.h
            (TypeCheckContext::get_builtins): Add.
            * typecheck/rust-typecheck-context.cc
            (TypeCheckContext::get_builtins): Add.
    
    Signed-off-by: Owen Avery <powerboat9.ga...@gmail.com>

Diff:
---
 gcc/rust/backend/rust-compile-context.cc     | 15 ++-------------
 gcc/rust/typecheck/rust-hir-type-check.h     |  1 +
 gcc/rust/typecheck/rust-typecheck-context.cc |  6 ++++++
 3 files changed, 9 insertions(+), 13 deletions(-)

diff --git a/gcc/rust/backend/rust-compile-context.cc 
b/gcc/rust/backend/rust-compile-context.cc
index e9d44f9725d9..b4c544e5dce0 100644
--- a/gcc/rust/backend/rust-compile-context.cc
+++ b/gcc/rust/backend/rust-compile-context.cc
@@ -33,19 +33,8 @@ Context::Context ()
 void
 Context::setup_builtins ()
 {
-  auto builtins = resolver->get_builtin_types ();
-  for (auto it = builtins.begin (); it != builtins.end (); it++)
-    {
-      HirId ref;
-      bool ok = tyctx->lookup_type_by_node_id ((*it)->get_node_id (), &ref);
-      rust_assert (ok);
-
-      TyTy::BaseType *lookup;
-      ok = tyctx->lookup_type (ref, &lookup);
-      rust_assert (ok);
-
-      TyTyResolveCompile::compile (this, lookup);
-    }
+  for (auto &builtin : tyctx->get_builtins ())
+    TyTyResolveCompile::compile (this, builtin.get ());
 }
 
 hashval_t
diff --git a/gcc/rust/typecheck/rust-hir-type-check.h 
b/gcc/rust/typecheck/rust-hir-type-check.h
index eb0c8490ecbf..9c9523a5f8a0 100644
--- a/gcc/rust/typecheck/rust-hir-type-check.h
+++ b/gcc/rust/typecheck/rust-hir-type-check.h
@@ -135,6 +135,7 @@ public:
   bool lookup_builtin (NodeId id, TyTy::BaseType **type);
   bool lookup_builtin (std::string name, TyTy::BaseType **type);
   void insert_builtin (HirId id, NodeId ref, TyTy::BaseType *type);
+  const std::vector<std::unique_ptr<TyTy::BaseType>> &get_builtins () const;
 
   void insert_type (const Analysis::NodeMapping &mappings,
                    TyTy::BaseType *type);
diff --git a/gcc/rust/typecheck/rust-typecheck-context.cc 
b/gcc/rust/typecheck/rust-typecheck-context.cc
index b4ff6d674443..d79ddf4aa6ae 100644
--- a/gcc/rust/typecheck/rust-typecheck-context.cc
+++ b/gcc/rust/typecheck/rust-typecheck-context.cc
@@ -73,6 +73,12 @@ TypeCheckContext::insert_builtin (HirId id, NodeId ref, 
TyTy::BaseType *type)
   builtins.push_back (std::unique_ptr<TyTy::BaseType> (type));
 }
 
+const std::vector<std::unique_ptr<TyTy::BaseType>> &
+TypeCheckContext::get_builtins () const
+{
+  return builtins;
+}
+
 void
 TypeCheckContext::insert_type (const Analysis::NodeMapping &mappings,
                               TyTy::BaseType *type)

Reply via email to