From: Arthur Cohen Date: Thu, 20 Jul 2023 13:15:21 +0000 (+0200) Subject: gccrs: nr2.0: Use DefaultResolver for TopLevel X-Git-Tag: basepoints/gcc-15~2261 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3b0a200eb8c986f17c550b902d5f7ab832b716e2;p=thirdparty%2Fgcc.git gccrs: nr2.0: Use DefaultResolver for TopLevel 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 --- diff --git a/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc b/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc index 73c857e3ba77..7923342b39a6 100644 --- a/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc +++ b/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.cc @@ -23,7 +23,9 @@ namespace Rust { namespace Resolver2_0 { -TopLevel::TopLevel (NameResolutionContext &resolver) : ctx (resolver) {} +TopLevel::TopLevel (NameResolutionContext &resolver) + : DefaultResolver (resolver) +{} template void diff --git a/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h b/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h index db2033fc91cd..93d40b8cb2bd 100644 --- a/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h +++ b/gcc/rust/resolve/rust-toplevel-name-resolver-2.0.h @@ -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 void insert_or_error_out (const Identifier &identifier, const T &node, Namespace ns);