aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarc Poulhiès <dkm@kataplop.net>2023-06-30 00:44:52 +0200
committerPhilip Herron <philip.herron@embecosm.com>2023-06-30 17:15:14 +0000
commitec0c3ad30d2fc188dea1de1722f7a8601afe0671 (patch)
tree552efd2bb69a223f29633c1eb7981a26b0db33e0
parentf044da10735895f0da58c68eb42eba8ac9c82b89 (diff)
downloadgcc-ec0c3ad30d2fc188dea1de1722f7a8601afe0671.zip
gcc-ec0c3ad30d2fc188dea1de1722f7a8601afe0671.tar.gz
gcc-ec0c3ad30d2fc188dea1de1722f7a8601afe0671.tar.bz2
gccrs: refactor: make crate.items private
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>
-rw-r--r--gcc/rust/backend/rust-compile.cc2
-rw-r--r--gcc/rust/checks/errors/privacy/rust-privacy-check.cc4
-rw-r--r--gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc2
-rw-r--r--gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.cc2
-rw-r--r--gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc2
-rw-r--r--gcc/rust/checks/errors/rust-const-checker.cc2
-rw-r--r--gcc/rust/checks/errors/rust-unsafe-checker.cc2
-rw-r--r--gcc/rust/checks/lints/rust-lint-marklive.cc6
-rw-r--r--gcc/rust/checks/lints/rust-lint-scan-deadcode.h6
-rw-r--r--gcc/rust/hir/rust-hir-dump.cc2
-rw-r--r--gcc/rust/hir/tree/rust-hir.h7
-rw-r--r--gcc/rust/metadata/rust-export-metadata.cc2
-rw-r--r--gcc/rust/typecheck/rust-hir-type-check.cc4
13 files changed, 19 insertions, 24 deletions
diff --git a/gcc/rust/backend/rust-compile.cc b/gcc/rust/backend/rust-compile.cc
index 01614bd..7c60980 100644
--- a/gcc/rust/backend/rust-compile.cc
+++ b/gcc/rust/backend/rust-compile.cc
@@ -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);
}
diff --git a/gcc/rust/checks/errors/privacy/rust-privacy-check.cc b/gcc/rust/checks/errors/privacy/rust-privacy-check.cc
index 1071463..424ec55 100644
--- a/gcc/rust/checks/errors/privacy/rust-privacy-check.cc
+++ b/gcc/rust/checks/errors/privacy/rust-privacy-check.cc
@@ -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)
{
diff --git a/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc b/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
index 63fd67d..ac7d4e9 100644
--- a/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
+++ b/gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
@@ -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);
}
diff --git a/gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.cc b/gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.cc
index 851fc7c..7a2a3d5 100644
--- a/gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.cc
+++ b/gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.cc
@@ -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)
{
diff --git a/gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc b/gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc
index 5b33828..e7a6b64 100644
--- a/gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc
+++ b/gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc
@@ -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)
{
diff --git a/gcc/rust/checks/errors/rust-const-checker.cc b/gcc/rust/checks/errors/rust-const-checker.cc
index f368b22..b8a7889 100644
--- a/gcc/rust/checks/errors/rust-const-checker.cc
+++ b/gcc/rust/checks/errors/rust-const-checker.cc
@@ -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);
}
diff --git a/gcc/rust/checks/errors/rust-unsafe-checker.cc b/gcc/rust/checks/errors/rust-unsafe-checker.cc
index d61ead8..1866ab7 100644
--- a/gcc/rust/checks/errors/rust-unsafe-checker.cc
+++ b/gcc/rust/checks/errors/rust-unsafe-checker.cc
@@ -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);
}
diff --git a/gcc/rust/checks/lints/rust-lint-marklive.cc b/gcc/rust/checks/lints/rust-lint-marklive.cc
index 74b16c5..65f99a0 100644
--- a/gcc/rust/checks/lints/rust-lint-marklive.cc
+++ b/gcc/rust/checks/lints/rust-lint-marklive.cc
@@ -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 ();
}
diff --git a/gcc/rust/checks/lints/rust-lint-scan-deadcode.h b/gcc/rust/checks/lints/rust-lint-scan-deadcode.h
index d351408..97d2dde 100644
--- a/gcc/rust/checks/lints/rust-lint-scan-deadcode.h
+++ b/gcc/rust/checks/lints/rust-lint-scan-deadcode.h
@@ -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
diff --git a/gcc/rust/hir/rust-hir-dump.cc b/gcc/rust/hir/rust-hir-dump.cc
index 5f3db42..f421f2d 100644
--- a/gcc/rust/hir/rust-hir-dump.cc
+++ b/gcc/rust/hir/rust-hir-dump.cc
@@ -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);
diff --git a/gcc/rust/hir/tree/rust-hir.h b/gcc/rust/hir/tree/rust-hir.h
index 3a97916..8a720a1 100644
--- a/gcc/rust/hir/tree/rust-hir.h
+++ b/gcc/rust/hir/tree/rust-hir.h
@@ -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
diff --git a/gcc/rust/metadata/rust-export-metadata.cc b/gcc/rust/metadata/rust-export-metadata.cc
index c65448b..b31eee5 100644
--- a/gcc/rust/metadata/rust-export-metadata.cc
+++ b/gcc/rust/metadata/rust-export-metadata.cc
@@ -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)
diff --git a/gcc/rust/typecheck/rust-hir-type-check.cc b/gcc/rust/typecheck/rust-hir-type-check.cc
index f98f750..605a248 100644
--- a/gcc/rust/typecheck/rust-hir-type-check.cc
+++ b/gcc/rust/typecheck/rust-hir-type-check.cc
@@ -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;