]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: refactor: make crate.items private
authorMarc Poulhiès <dkm@kataplop.net>
Thu, 29 Jun 2023 22:44:52 +0000 (00:44 +0200)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 16 Jan 2024 17:49:30 +0000 (18:49 +0100)
Introduce Crate::get_items () and fixup all callers.

gcc/rust/ChangeLog:

* hir/tree/rust-hir.h (struct Crate): Rename struct into ...
(class Crate): ... class, and add get_items.
* backend/rust-compile.cc (CompileCrate::go): Adapt to visibility change of items.
* checks/errors/privacy/rust-privacy-check.cc (Resolver::resolve): Likewise.
* checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::go): Likewise.
* checks/errors/privacy/rust-pub-restricted-visitor.cc (PubRestrictedVisitor::go): Likewise.
* checks/errors/privacy/rust-visibility-resolver.cc (VisibilityResolver::go): Likewise.
* checks/errors/rust-const-checker.cc (ConstChecker::go): Likewise.
* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::go): Likewise.
* checks/lints/rust-lint-marklive.cc (FindEntryPoint::find): Likewise.
* checks/lints/rust-lint-scan-deadcode.h (ScanDeadCode::Scan): Likewise.
* metadata/rust-export-metadata.cc (PublicInterface::gather_export_data): Likewise.
* typecheck/rust-hir-type-check.cc (TypeResolution::Resolve): Likewise.
* hir/rust-hir-dump.cc (CompileCrate::go): Likewise.

Signed-off-by: Marc Poulhiès <dkm@kataplop.net>
13 files changed:
gcc/rust/backend/rust-compile.cc
gcc/rust/checks/errors/privacy/rust-privacy-check.cc
gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.cc
gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc
gcc/rust/checks/errors/rust-const-checker.cc
gcc/rust/checks/errors/rust-unsafe-checker.cc
gcc/rust/checks/lints/rust-lint-marklive.cc
gcc/rust/checks/lints/rust-lint-scan-deadcode.h
gcc/rust/hir/rust-hir-dump.cc
gcc/rust/hir/tree/rust-hir.h
gcc/rust/metadata/rust-export-metadata.cc
gcc/rust/typecheck/rust-hir-type-check.cc

index b7d0741a23c3d452699ca8be09fa434e9b4a1260..6867737801ad6873c292747e8d527c4b323e45bc 100644 (file)
@@ -43,7 +43,7 @@ CompileCrate::Compile (HIR::Crate &crate, Context *ctx)
 void
 CompileCrate::go ()
 {
-  for (auto &item : crate.items)
+  for (auto &item : crate.get_items ())
     CompileItem::compile (item.get (), ctx);
 }
 
index f1c9950ee15c74f774d1b518450de251b614964b..6f2059d15de389182ac2c75f0910010f331c5386 100644 (file)
@@ -45,9 +45,7 @@ Resolver::resolve (HIR::Crate &crate)
 
   auto visitor = ReachabilityVisitor (ctx, *ty_ctx);
 
-  const auto &items = crate.items;
-
-  for (auto &item : items)
+  for (auto &item : crate.get_items ())
     {
       if (item->get_hir_kind () == HIR::Node::VIS_ITEM)
        {
index b403b324ccc11cd2a15e460b796b0778dbe29738..5d2f533a1b16d3d0b86f13fb66f7b90d8607f110 100644 (file)
@@ -34,7 +34,7 @@ PrivacyReporter::PrivacyReporter (
 void
 PrivacyReporter::go (HIR::Crate &crate)
 {
-  for (auto &item : crate.items)
+  for (auto &item : crate.get_items ())
     item->accept_vis (*this);
 }
 
index 9e235463a7af567905a5e4ef0b06a7f854ba2715..a800f65297d1f5f24d02ba513a88a1fadfc4ce58 100644 (file)
@@ -57,7 +57,7 @@ PubRestrictedVisitor::go (HIR::Crate &crate)
   // FIXME: When do we insert `super`? `self`?
   // We need wrapper function for these
 
-  for (auto &item : crate.items)
+  for (auto &item : crate.get_items ())
     {
       if (item->get_hir_kind () == HIR::Node::VIS_ITEM)
        {
index 49524222c8658eda2a3eec0973976b72c461b7b5..dc6ae0ead0f624cf3063719fe1e9bdcc33c158ac 100644 (file)
@@ -37,7 +37,7 @@ VisibilityResolver::go (HIR::Crate &crate)
 
   current_module = crate.get_mappings ().get_defid ();
 
-  for (auto &item : crate.items)
+  for (auto &item : crate.get_items ())
     {
       if (item->get_hir_kind () == HIR::Node::VIS_ITEM)
        {
index 524374d9f3b920fd1bfde25fc8db32da947b74fb..74f0617be8d94652e7d07016a4d773b220c826e5 100644 (file)
@@ -33,7 +33,7 @@ ConstChecker::ConstChecker ()
 void
 ConstChecker::go (HIR::Crate &crate)
 {
-  for (auto &item : crate.items)
+  for (auto &item : crate.get_items ())
     item->accept_vis (*this);
 }
 
index c52c0b862c0db939fc0d470c3c1814c69ec5019e..2b60cd610112d4add225f67548825dfdfe21a106 100644 (file)
@@ -34,7 +34,7 @@ UnsafeChecker::UnsafeChecker ()
 void
 UnsafeChecker::go (HIR::Crate &crate)
 {
-  for (auto &item : crate.items)
+  for (auto &item : crate.get_items ())
     item->accept_vis (*this);
 }
 
index a92395fb513b812aa81830fafdde546cea33fe8d..8787a9d85502ebf5c8d2f0aae23bc234327b80d5 100644 (file)
@@ -41,10 +41,8 @@ public:
   static std::vector<HirId> find (HIR::Crate &crate)
   {
     FindEntryPoint findEntryPoint;
-    for (auto it = crate.items.begin (); it != crate.items.end (); it++)
-      {
-       it->get ()->accept_vis (findEntryPoint);
-      }
+    for (auto &it : crate.get_items ())
+      it->accept_vis (findEntryPoint);
     return findEntryPoint.getEntryPoint ();
   }
 
index f84d356904854b59f81e40a9da1d90239fc3a675..ffc07d3e7454f3da58a84773695fb846f0536d8f 100644 (file)
@@ -44,10 +44,8 @@ public:
   {
     std::set<HirId> live_symbols = Analysis::MarkLive::Analysis (crate);
     ScanDeadcode sdc (live_symbols);
-    for (auto it = crate.items.begin (); it != crate.items.end (); it++)
-      {
-       it->get ()->accept_vis (sdc);
-      }
+    for (auto &it : crate.get_items ())
+      it.get ()->accept_vis (sdc);
   };
 
   void visit (HIR::Function &function) override
index baebca724476a7b779ad969b5b10f42dabefbba2..52c1ebeed5c1572b1c3a7d5f38c81f6e86cbbe1d 100644 (file)
@@ -46,7 +46,7 @@ Dump::go (HIR::Crate &crate)
   stream << "items: [";
 
   stream << indentation;
-  for (const auto &item : crate.items)
+  for (const auto &item : crate.get_items ())
     {
       stream << std::endl;
       item->accept_vis (*this);
index 8b60d105f27ea1ebf0c85cdad4040d1db4891af9..662cbc685d8caf1c5d676245e5e34ab438a91155 100644 (file)
@@ -863,18 +863,18 @@ protected:
 };
 
 // A crate HIR object - holds all the data for a single compilation unit
-struct Crate : public WithInnerAttrs
+class Crate : public WithInnerAttrs
 {
   // dodgy spacing required here
   /* TODO: is it better to have a vector of items here or a module (implicit
    * top-level one)? */
-  std::vector<std::unique_ptr<Item> > items;
+  std::vector<std::unique_ptr<Item>> items;
 
   Analysis::NodeMapping mappings;
 
 public:
   // Constructor
-  Crate (std::vector<std::unique_ptr<Item> > items, AST::AttrVec inner_attrs,
+  Crate (std::vector<std::unique_ptr<Item>> items, AST::AttrVec inner_attrs,
         Analysis::NodeMapping mappings)
     : WithInnerAttrs (std::move (inner_attrs)), items (std::move (items)),
       mappings (mappings)
@@ -912,6 +912,7 @@ public:
   std::string as_string () const;
 
   const Analysis::NodeMapping &get_mappings () const { return mappings; }
+  std::vector<std::unique_ptr<Item>> &get_items () { return items; }
 };
 
 // Base path expression HIR node - abstract
index ea251f8f36a0cfc9c6a02d80c14c58f180c7ae94..493e73bb4ee339db075d8e1119cf54ca7937cc34 100644 (file)
@@ -220,7 +220,7 @@ void
 PublicInterface::gather_export_data ()
 {
   ExportVisItems visitor (context);
-  for (auto &item : crate.items)
+  for (auto &item : crate.get_items ())
     {
       bool is_vis_item = item->get_hir_kind () == HIR::Node::BaseKind::VIS_ITEM;
       if (!is_vis_item)
index 8df44938b2fa2636a6e25fe9c2e68bb89527b458..7c1477d4f4d7c8203291c44cb04b513f1b2876a6 100644 (file)
@@ -33,8 +33,8 @@ namespace Resolver {
 void
 TypeResolution::Resolve (HIR::Crate &crate)
 {
-  for (auto it = crate.items.begin (); it != crate.items.end (); it++)
-    TypeCheckItem::Resolve (*it->get ());
+  for (auto &it : crate.get_items ())
+    TypeCheckItem::Resolve (*it);
 
   if (saw_errors ())
     return;