https://gcc.gnu.org/g:447d38419914eb287ce9413d90fe17f80ece3df2

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

    gccrs: 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 c80f95649f12..86f089440ac0 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 fa49e0689f30..5b1fe220890b 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 8f7a8a4f48f8..0fb8224861ea 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