]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: nr2.0: Use DefaultResolver for TopLevel
authorArthur Cohen <arthur.cohen@embecosm.com>
Thu, 20 Jul 2023 13:15:21 +0000 (15:15 +0200)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 16 Jan 2024 18:00:26 +0000 (19:00 +0100)
gcc/rust/ChangeLog:

* resolve/rust-toplevel-name-resolver-2.0.h
(class TopLevel): Inherit from DefaultResolver
* resolve/rust-toplevel-name-resolver-2.0.cc
(TopLevel::TopLevel): Remove unecessary methods

gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc
gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h

index 73c857e3ba77b3c9f8bdf8b5249f4c3293aa8ad0..7923342b39a6c8fa38e28cb701c40b9b661fc887 100644 (file)
@@ -23,7 +23,9 @@
 namespace Rust {
 namespace Resolver2_0 {
 
-TopLevel::TopLevel (NameResolutionContext &resolver) : ctx (resolver) {}
+TopLevel::TopLevel (NameResolutionContext &resolver)
+  : DefaultResolver (resolver)
+{}
 
 template <typename T>
 void
index db2033fc91cd7571ed602fbef81d6f470d91ab87..93d40b8cb2bd3da1367d7206e5551697ad545178 100644 (file)
@@ -21,7 +21,7 @@
 
 #include "rust-ast-visitor.h"
 #include "rust-name-resolution-context.h"
-#include "rust-ast-resolve-base.h"
+#include "rust-default-resolver.h"
 
 namespace Rust {
 namespace Resolver2_0 {
@@ -31,10 +31,9 @@ namespace Resolver2_0 {
  * crate, and inserting them into the proper namespaces. These definitions can
  * then be accessed by subsequent resolvers, such as `Early` or `Late`.
  */
-// TODO: Merge Resolver namespaces and use `public ResolverBase`
-class TopLevel : public ::Rust::Resolver::ResolverBase
+class TopLevel : public DefaultResolver
 {
-  using ::Rust::Resolver::ResolverBase::visit;
+  using DefaultResolver::visit;
 
 public:
   TopLevel (NameResolutionContext &resolver);
@@ -42,9 +41,15 @@ public:
   void go (AST::Crate &crate);
 
 private:
-  NameResolutionContext &ctx;
-
-  // FIXME: Documentation
+  /**
+   * Insert a new definition or error out if a definition with the same name was
+   * already present in the same namespace in the same scope.
+   *
+   * @param identifier The identifier of the definition to add.
+   * @param node A reference to the node, so we can get its `NodeId` and
+   * location.
+   * @param ns The namespace in which to add the definition.
+   */
   template <typename T>
   void insert_or_error_out (const Identifier &identifier, const T &node,
                            Namespace ns);