]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: Revert "hir: Add ExportedMacro node and handling."
authorArthur Cohen <arthur.cohen@embecosm.com>
Wed, 15 Mar 2023 16:15:39 +0000 (17:15 +0100)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 16 Jan 2024 17:21:14 +0000 (18:21 +0100)
This reverts commit a1f940d193c6cdb13483690a4f4a7d501ad7040e. It is easier
and cleaner to store exported macros' NodeIds into our mappings rather than
create a new HIR kind of node.

gcc/rust/ChangeLog:

* backend/rust-compile-item.h: Revert 1c946687239b86a92839d57dfbc928ad7ce35eae.
* backend/rust-compile-stmt.h: Likewise.
* checks/errors/privacy/rust-privacy-reporter.cc
(PrivacyReporter::visit): Likewise.
* checks/errors/privacy/rust-privacy-reporter.h: Likewise.
* checks/errors/privacy/rust-pub-restricted-visitor.cc
(PubRestrictedVisitor::visit): Likewise.
* checks/errors/privacy/rust-pub-restricted-visitor.h: Likewise.
* checks/errors/privacy/rust-reachability.cc
(ReachabilityVisitor::visit): Likewise.
* checks/errors/privacy/rust-reachability.h: Likewise.
* checks/errors/privacy/rust-visibility-resolver.cc
(VisibilityResolver::visit): Likewise.
* checks/errors/privacy/rust-visibility-resolver.h: Likewise.
* checks/errors/rust-const-checker.cc (ConstChecker::visit): Likewise.
* checks/errors/rust-const-checker.h: Likewise.
* checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Likewise.
* checks/errors/rust-unsafe-checker.h: Likewise.
* hir/rust-ast-lower-item.cc (ASTLoweringItem::visit): Likewise.
* hir/rust-ast-lower-item.h: Likewise.
* hir/rust-hir-dump.cc (Dump::visit): Likewise.
* hir/rust-hir-dump.h: Likewise.
* hir/tree/rust-hir-full-decls.h (class ExportedMacro): Likewise.
* hir/tree/rust-hir-item.h (class ExportedMacro): Likewise.
* hir/tree/rust-hir-visitor.h: Likewise.
* hir/tree/rust-hir.cc (ExportedMacro::accept_vis): Likewise.
(ExportedMacro::get_locus): Likewise.
(ExportedMacro::get_item_kind): Likewise.
(ExportedMacro::clone_item_impl): Likewise.
* hir/tree/rust-hir.h: Likewise.
* metadata/rust-export-metadata.cc: Likewise.
* typecheck/rust-hir-type-check-item.h: Likewise.
* typecheck/rust-hir-type-check-stmt.cc (TypeCheckStmt::visit): Likewise.
* typecheck/rust-hir-type-check-stmt.h: Likewise.
* typecheck/rust-tycheck-dump.h: Likewise.
* util/rust-attributes.cc: Likewise.

29 files changed:
gcc/rust/backend/rust-compile-item.h
gcc/rust/backend/rust-compile-stmt.h
gcc/rust/checks/errors/privacy/rust-privacy-reporter.cc
gcc/rust/checks/errors/privacy/rust-privacy-reporter.h
gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.cc
gcc/rust/checks/errors/privacy/rust-pub-restricted-visitor.h
gcc/rust/checks/errors/privacy/rust-reachability.cc
gcc/rust/checks/errors/privacy/rust-reachability.h
gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc
gcc/rust/checks/errors/privacy/rust-visibility-resolver.h
gcc/rust/checks/errors/rust-const-checker.cc
gcc/rust/checks/errors/rust-const-checker.h
gcc/rust/checks/errors/rust-unsafe-checker.cc
gcc/rust/checks/errors/rust-unsafe-checker.h
gcc/rust/hir/rust-ast-lower-item.cc
gcc/rust/hir/rust-ast-lower-item.h
gcc/rust/hir/rust-hir-dump.cc
gcc/rust/hir/rust-hir-dump.h
gcc/rust/hir/tree/rust-hir-full-decls.h
gcc/rust/hir/tree/rust-hir-item.h
gcc/rust/hir/tree/rust-hir-visitor.h
gcc/rust/hir/tree/rust-hir.cc
gcc/rust/hir/tree/rust-hir.h
gcc/rust/metadata/rust-export-metadata.cc
gcc/rust/typecheck/rust-hir-type-check-item.h
gcc/rust/typecheck/rust-hir-type-check-stmt.cc
gcc/rust/typecheck/rust-hir-type-check-stmt.h
gcc/rust/typecheck/rust-tycheck-dump.h
gcc/rust/util/rust-attributes.cc

index d57d0a13c8475bf2bfe010f664b5004452e1ddbb..93cf21be096b36b5ec1e32a38b8b562393f4ad13 100644 (file)
@@ -70,7 +70,6 @@ public:
   void visit (HIR::LetStmt &) override {}
   void visit (HIR::ExprStmtWithoutBlock &) override {}
   void visit (HIR::ExprStmtWithBlock &) override {}
-  void visit (HIR::ExportedMacro &) override {}
 
 protected:
   CompileItem (Context *ctx, TyTy::BaseType *concrete, Location ref_locus)
index c37654a8bdef52346837202b042174329ec5b58e..98cf17d042bca659068db6b26b7b8a30f8832729 100644 (file)
@@ -56,7 +56,6 @@ public:
   void visit (HIR::ImplBlock &) override {}
   void visit (HIR::ExternBlock &) override {}
   void visit (HIR::EmptyStmt &) override {}
-  void visit (HIR::ExportedMacro &) override {}
 
 private:
   CompileStmt (Context *ctx);
index 26cf14a9caf05a6ff5c414a6972bf166cd2c2118..f95572d6df9e3c13a14e6ea700f9d15da3e2abc5 100644 (file)
@@ -728,9 +728,5 @@ PrivacyReporter::visit (HIR::ExprStmtWithBlock &stmt)
   stmt.get_expr ()->accept_vis (*this);
 }
 
-void
-PrivacyReporter::visit (HIR::ExportedMacro &)
-{}
-
 } // namespace Privacy
 } // namespace Rust
index a02b6f28bf6fb24f9b5082a15255ae2c3dd545c3..50fcf73efc2d74949d150b3b88987e931bf674f5 100644 (file)
@@ -153,7 +153,6 @@ types
   virtual void visit (HIR::LetStmt &stmt);
   virtual void visit (HIR::ExprStmtWithoutBlock &stmt);
   virtual void visit (HIR::ExprStmtWithBlock &stmt);
-  virtual void visit (HIR::ExportedMacro &macro);
 
   Analysis::Mappings &mappings;
   Rust::Resolver::Resolver &resolver;
index 12149475f31b9091ad7fc1c8cfad87b6afd82620..9e235463a7af567905a5e4ef0b06a7f854ba2715 100644 (file)
@@ -178,12 +178,5 @@ PubRestrictedVisitor::visit (HIR::ExternBlock &block)
                        block.get_locus ());
 }
 
-void
-PubRestrictedVisitor::visit (HIR::ExportedMacro &macro)
-{
-  is_restriction_valid (macro.get_mappings ().get_nodeid (),
-                       macro.get_locus ());
-}
-
 } // namespace Privacy
 } // namespace Rust
index e092580c4b7566df274c2aad752416ef8d241e75..7ac4b31cdc520fc62c384c3ea90d6e5f29ec82b9 100644 (file)
@@ -103,7 +103,6 @@ public:
   virtual void visit (HIR::Trait &trait);
   virtual void visit (HIR::ImplBlock &impl);
   virtual void visit (HIR::ExternBlock &block);
-  virtual void visit (HIR::ExportedMacro &macro);
 
 private:
   /* Stack of ancestor modules visited by this visitor */
index 5290733216fb80f1df2710bc89612913b6978669..0afd056a1b70bec85d43638dc868c99290435b3d 100644 (file)
@@ -230,10 +230,6 @@ void
 ReachabilityVisitor::visit (HIR::ExternBlock &)
 {}
 
-void
-ReachabilityVisitor::visit (HIR::ExportedMacro &macro)
-{}
-
 // FIXME: How can we visit Blocks in the current configuration? Have a full
 // visitor?
 } // namespace Privacy
index 209298854d1a3fa641e2208461b7a0ad595df43f..50258ef90d083c095126fb4683d1caba8aff3183 100644 (file)
@@ -75,7 +75,6 @@ public:
   virtual void visit (HIR::Trait &trait);
   virtual void visit (HIR::ImplBlock &impl);
   virtual void visit (HIR::ExternBlock &block);
-  virtual void visit (HIR::ExportedMacro &macro);
 
 private:
   ReachLevel current_level;
index 84870efe0c75528fb4db411770a5ce373e797be7..e970375d2dbc8387490cdfbb2f4ef31e751b2d80 100644 (file)
@@ -241,11 +241,5 @@ void
 VisibilityResolver::visit (HIR::ExternBlock &)
 {}
 
-void
-VisibilityResolver::visit (HIR::ExportedMacro &macro)
-{
-  resolve_and_update (&macro);
-}
-
 } // namespace Privacy
 } // namespace Rust
index 0682b88d62be2a1429cbc57006f15b5bf3013bb8..d2f595b92a12a445d10ba76f0b52207c65d4d3d0 100644 (file)
@@ -90,7 +90,6 @@ public:
   virtual void visit (HIR::Trait &trait);
   virtual void visit (HIR::ImplBlock &impl);
   virtual void visit (HIR::ExternBlock &block);
-  virtual void visit (HIR::ExportedMacro &macro);
 
 private:
   Analysis::Mappings &mappings;
index 07f6b899fd2ee6b38197844758f8bb05882fda82..0858545e9bc6682e4931a5f89924d66616f73b62 100644 (file)
@@ -894,9 +894,5 @@ void
 ConstChecker::visit (BareFunctionType &)
 {}
 
-void
-ConstChecker::visit (ExportedMacro &)
-{}
-
 } // namespace HIR
 } // namespace Rust
index 324e5639429bd89ab19d13e4ad449e5b02413e31..eb1cc4ef08fd44a20fd7083b29b035499eaecef5 100644 (file)
@@ -201,7 +201,6 @@ private:
   virtual void visit (SliceType &type) override;
   virtual void visit (InferredType &type) override;
   virtual void visit (BareFunctionType &type) override;
-  virtual void visit (ExportedMacro &macro) override;
 };
 
 } // namespace HIR
index 211ba0a2a8fbd35a50696e73af4ae7469e2ac12a..d311366ad30a9265660f2dd05e20d2ba39bd01ba 100644 (file)
@@ -951,9 +951,5 @@ void
 UnsafeChecker::visit (BareFunctionType &)
 {}
 
-void
-UnsafeChecker::visit (ExportedMacro &)
-{}
-
 } // namespace HIR
 } // namespace Rust
index 0d32014b4a26413f6c69e5135679cdd9dea64171..ec0db39d942b0425969e94067f2bbe48d44b35fb 100644 (file)
@@ -183,7 +183,6 @@ private:
   virtual void visit (SliceType &type) override;
   virtual void visit (InferredType &type) override;
   virtual void visit (BareFunctionType &type) override;
-  virtual void visit (ExportedMacro &macro) override;
 };
 
 } // namespace HIR
index 07a5fc87ad06337689a930471547b376e1c32400..da828079d2dc7e0e1da17b26712a53a6c7d9e469 100644 (file)
@@ -705,28 +705,6 @@ ASTLoweringItem::visit (AST::ExternBlock &extern_block)
   translated = lower_extern_block (extern_block);
 }
 
-void
-ASTLoweringItem::visit (AST::MacroRulesDefinition &def)
-{
-  bool is_export = false;
-  for (const auto &attr : def.get_outer_attrs ())
-    if (attr.get_path ().as_string () == "macro_export")
-      is_export = true;
-
-  if (is_export)
-    {
-      auto crate_num = mappings->get_current_crate ();
-      Analysis::NodeMapping mapping (crate_num, def.get_node_id (),
-                                    mappings->get_next_hir_id (crate_num),
-                                    mappings->get_next_localdef_id (
-                                      crate_num));
-      auto locus = def.get_locus ();
-
-      translated
-       = new HIR::ExportedMacro (mapping, def.get_outer_attrs (), locus);
-    }
-}
-
 HIR::SimplePath
 ASTLoweringSimplePath::translate (const AST::SimplePath &path)
 {
index 24f7ba622a58701303d7007e723eecd9466559c6..300f7e15091b7402b43d3b55fc2f31bf32a41bdd 100644 (file)
@@ -44,7 +44,6 @@ public:
   void visit (AST::Trait &trait) override;
   void visit (AST::TraitImpl &impl_block) override;
   void visit (AST::ExternBlock &extern_block) override;
-  void visit (AST::MacroRulesDefinition &macro) override;
 
 private:
   ASTLoweringItem () : translated (nullptr) {}
index 65b79f362b1f9c9a26969d02d60bd5cb3af1a46e..c2833132abbf6c9af56f7ad87ab0e0103a0784d5 100644 (file)
@@ -697,8 +697,5 @@ Dump::visit (InferredType &)
 void
 Dump::visit (BareFunctionType &)
 {}
-void
-Dump::visit (ExportedMacro &)
-{}
 } // namespace HIR
 } // namespace Rust
index be731700f91956e46e7ebcef08f5043d34bf3caa..e8530fdcaa0be9c22b0f72613882c5ccc296307c 100644 (file)
@@ -181,7 +181,6 @@ private:
   virtual void visit (SliceType &) override;
   virtual void visit (InferredType &) override;
   virtual void visit (BareFunctionType &) override;
-  virtual void visit (ExportedMacro &) override;
 };
 
 } // namespace HIR
index 298642bb58321f92f4d03dbd494f80aee14652bf..4ae3471cccda4b352fc7823e8b2c9c7933c9809e 100644 (file)
@@ -35,9 +35,6 @@ class Lifetime;
 class GenericParam;
 class LifetimeParam;
 
-// FIXME: ARTHUR: Move this somewhere else
-class ExportedMacro;
-
 class TraitItem;
 class ImplItem;
 struct Crate;
index e1a2b4eaeab7d18ce371c7c10deaba50c9137ce1..2145f98fd15574252fcffffea0e2d40f9672640a 100644 (file)
@@ -3226,27 +3226,6 @@ protected:
   }*/
 };
 
-class ExportedMacro : public VisItem
-{
-  Location locus;
-
-public:
-  ExportedMacro (Analysis::NodeMapping mapping, AST::AttrVec outer_attrs,
-                Location locus)
-    : VisItem (mapping, Visibility (Visibility::PUBLIC),
-              std::move (outer_attrs)),
-      locus (locus)
-  {}
-
-  virtual Location get_locus () const override;
-  virtual ItemKind get_item_kind () const override;
-  virtual ExportedMacro *clone_item_impl () const override;
-
-  void accept_vis (HIRFullVisitor &vis) override;
-  void accept_vis (HIRStmtVisitor &vis) override;
-  void accept_vis (HIRVisItemVisitor &vis) override;
-};
-
 } // namespace HIR
 } // namespace Rust
 
index ff84d1512b3565f4eef63dc56f1d52ff532d41a3..c35db8ec1aee5a0a4e56c0926448180323bce7ec 100644 (file)
@@ -153,7 +153,6 @@ public:
   virtual void visit (SliceType &type) = 0;
   virtual void visit (InferredType &type) = 0;
   virtual void visit (BareFunctionType &type) = 0;
-  virtual void visit (ExportedMacro &macro) = 0;
 };
 
 class HIRFullVisitorBase : public HIRFullVisitor
@@ -304,7 +303,6 @@ public:
   virtual void visit (SliceType &) override {}
   virtual void visit (InferredType &) override {}
   virtual void visit (BareFunctionType &) override {}
-  virtual void visit (ExportedMacro &) override {}
 };
 
 class HIRExternalItemVisitor
@@ -339,7 +337,6 @@ public:
   virtual void visit (Trait &trait) = 0;
   virtual void visit (ImplBlock &impl) = 0;
   virtual void visit (ExternBlock &block) = 0;
-  virtual void visit (ExportedMacro &macro) = 0;
 };
 
 class HIRImplVisitor
@@ -399,7 +396,6 @@ public:
   virtual void visit (LetStmt &stmt) = 0;
   virtual void visit (ExprStmtWithoutBlock &stmt) = 0;
   virtual void visit (ExprStmtWithBlock &stmt) = 0;
-  virtual void visit (ExportedMacro &macro) = 0;
 };
 
 class HIRExpressionVisitor
index 9b286b1d6b55ee3d25e1d8ed879023b17ef1a9fd..0d42546ab92c8a548cdce768561bf48b728f73ed 100644 (file)
@@ -5180,41 +5180,5 @@ void
 ConstGenericParam::accept_vis (HIRFullVisitor &)
 {}
 
-void
-ExportedMacro::accept_vis (HIRVisItemVisitor &vis)
-{
-  vis.visit (*this);
-}
-
-void
-ExportedMacro::accept_vis (HIRFullVisitor &vis)
-{
-  vis.visit (*this);
-}
-
-void
-ExportedMacro::accept_vis (HIRStmtVisitor &vis)
-{
-  vis.visit (*this);
-}
-
-Location
-ExportedMacro::get_locus () const
-{
-  return locus;
-}
-
-Item::ItemKind
-ExportedMacro::get_item_kind () const
-{
-  return ItemKind::MacroExport;
-}
-
-ExportedMacro *
-ExportedMacro::clone_item_impl () const
-{
-  return new ExportedMacro (*this);
-}
-
 } // namespace HIR
 } // namespace Rust
index d9eea875cb1761ae3e417f5984e17e82340fb189..31f14941e463f54ff611e4bf1720cedbf88dae78 100644 (file)
@@ -191,7 +191,6 @@ public:
     Trait,
     Impl,
     Module,
-    MacroExport,
   };
 
   virtual ItemKind get_item_kind () const = 0;
index d1c68c9c83add3dd2e49bdd559a17ed0dda81974..7b50a92586a142091d4908db12fc6aa702bbaa8c 100644 (file)
@@ -169,7 +169,6 @@ public:
   void visit (HIR::StaticItem &) override {}
   void visit (HIR::ImplBlock &) override {}
   void visit (HIR::ExternBlock &) override {}
-  void visit (HIR::ExportedMacro &) override {}
 
   void visit (HIR::Trait &trait) override { ctx.emit_trait (trait); }
 
index 0462c44a02c6406ee432b5784bad73efef158a9a..b83fb56594855769ef328f98cb9df9aa0d94f007 100644 (file)
@@ -50,7 +50,6 @@ public:
   // nothing to do
   void visit (HIR::ExternCrate &) override {}
   void visit (HIR::UseDeclaration &) override {}
-  void visit (HIR::ExportedMacro &) override {}
 
 protected:
   std::vector<TyTy::SubstitutionParamMapping>
index 17068a95bf139a3a8fe1da302d84be79462f5ac7..b99e7318d97d7f18c3599582fa18161892c363a0 100644 (file)
@@ -147,10 +147,6 @@ TypeCheckStmt::visit (HIR::QualifiedPathInType &path)
   infered = TypeCheckType::Resolve (&path);
 }
 
-void
-TypeCheckStmt::visit (HIR::ExportedMacro &path)
-{}
-
 void
 TypeCheckStmt::visit (HIR::TupleStruct &struct_decl)
 {
index 6c4186cddc9226b66175ede0f866764504cb7ac6..a4663b685584646dcbece153a0468083e86be83c 100644 (file)
@@ -47,7 +47,6 @@ public:
   void visit (HIR::ImplBlock &impl) override;
   void visit (HIR::TypePath &path) override;
   void visit (HIR::QualifiedPathInType &path) override;
-  void visit (HIR::ExportedMacro &path) override;
 
   // FIXME
   // this seems like it should not be part of this visitor
index 03bb777fe9272c669447461fe057661856cd9b27..50b57f6e7a6987834789c3a134b0800e9bb757b7 100644 (file)
@@ -196,8 +196,6 @@ public:
     dump += "ctor: " + type_string (expr.get_mappings ());
   }
 
-  void visit (HIR::ExportedMacro &) override {}
-
 protected:
   std::string type_string (const Analysis::NodeMapping &mappings)
   {
index ec1f9724c881ff127716696cddb7f90c595aaa35..55f3aa21ef6337bc20b29c75925e08beb4cb4d69 100644 (file)
@@ -41,7 +41,6 @@ static const BuiltinAttrDefinition __definitions[]
      {"repr", CODE_GENERATION},
      {"path", EXPANSION},
      {"macro_use", NAME_RESOLUTION},
-     {"macro_export", CODE_GENERATION}, // FIXME: And NAME_RESOLUTION as well
      // FIXME: This is not implemented yet, see
      // https://github.com/Rust-GCC/gccrs/issues/1475
      {"target_feature", CODE_GENERATION},