diff options
author | Marc Poulhiès <dkm@kataplop.net> | 2023-06-30 00:44:52 +0200 |
---|---|---|
committer | Philip Herron <philip.herron@embecosm.com> | 2023-06-30 17:15:14 +0000 |
commit | ec0c3ad30d2fc188dea1de1722f7a8601afe0671 (patch) | |
tree | 552efd2bb69a223f29633c1eb7981a26b0db33e0 /gcc | |
parent | f044da10735895f0da58c68eb42eba8ac9c82b89 (diff) | |
download | gcc-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>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/backend/rust-compile.cc | 2 | ||||
-rw-r--r-- | gcc/rust/checks/errors/privacy/rust-privacy-check.cc | 4 | ||||
-rw-r--r-- | gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc | 2 | ||||
-rw-r--r-- | gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.cc | 2 | ||||
-rw-r--r-- | gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc | 2 | ||||
-rw-r--r-- | gcc/rust/checks/errors/rust-const-checker.cc | 2 | ||||
-rw-r--r-- | gcc/rust/checks/errors/rust-unsafe-checker.cc | 2 | ||||
-rw-r--r-- | gcc/rust/checks/lints/rust-lint-marklive.cc | 6 | ||||
-rw-r--r-- | gcc/rust/checks/lints/rust-lint-scan-deadcode.h | 6 | ||||
-rw-r--r-- | gcc/rust/hir/rust-hir-dump.cc | 2 | ||||
-rw-r--r-- | gcc/rust/hir/tree/rust-hir.h | 7 | ||||
-rw-r--r-- | gcc/rust/metadata/rust-export-metadata.cc | 2 | ||||
-rw-r--r-- | gcc/rust/typecheck/rust-hir-type-check.cc | 4 |
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; |