diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2024-04-06 23:02:51 +0200 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2025-03-19 15:32:12 +0100 |
commit | 9047b32383a05b5ef5909de5eed35a0cd3c9a76a (patch) | |
tree | 34338ce2e7513fc2040179e4da764cd04ad3ab99 /gcc/rust/resolve/rust-finalize-imports-2.0.h | |
parent | 28fe1dac18bc054822ecbf177a9a6cb129f9b1e8 (diff) | |
download | gcc-9047b32383a05b5ef5909de5eed35a0cd3c9a76a.zip gcc-9047b32383a05b5ef5909de5eed35a0cd3c9a76a.tar.gz gcc-9047b32383a05b5ef5909de5eed35a0cd3c9a76a.tar.bz2 |
gccrs: imports: Make FinalizeImports a resolver visitor as well
gcc/rust/ChangeLog:
* resolve/rust-finalize-imports-2.0.cc (FinalizeImports::go): Turn
static method into method.
(FinalizeImports::visit): New.
* resolve/rust-finalize-imports-2.0.h (class FinalizeImports): Make
FinalizeImports a visitor.
* resolve/rust-early-name-resolver-2.0.cc (Early::go): Use new FinalizeImports API.
(Early::resolve_glob_import): Use new API.
(Early::resolve_simple_import): Likewise.
(Early::resolve_rebind_import): Likewise.
(Early::build_import_mapping): Likewise.
* resolve/rust-early-name-resolver-2.0.h: Likewise.
* resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Likewise.
* resolve/rust-toplevel-name-resolver-2.0.h: Likewise.
Diffstat (limited to 'gcc/rust/resolve/rust-finalize-imports-2.0.h')
-rw-r--r-- | gcc/rust/resolve/rust-finalize-imports-2.0.h | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/gcc/rust/resolve/rust-finalize-imports-2.0.h b/gcc/rust/resolve/rust-finalize-imports-2.0.h index ed4dc7d..a8b5ba0 100644 --- a/gcc/rust/resolve/rust-finalize-imports-2.0.h +++ b/gcc/rust/resolve/rust-finalize-imports-2.0.h @@ -16,6 +16,8 @@ // along with GCC; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. +#include "rust-ast.h" +#include "rust-expr.h" #include "rust-name-resolution-context.h" #include "rust-toplevel-name-resolver-2.0.h" #include "rust-early-name-resolver-2.0.h" @@ -86,12 +88,25 @@ private: // each ImportKind - easy! // - yay! -class FinalizeImports +class FinalizeImports : DefaultResolver { public: - static void - go (std::map<TopLevel::ImportKind, Early::ImportData> import_mappings, - TopLevel &toplevel, NameResolutionContext &ctx); + FinalizeImports ( + std::unordered_map< + NodeId, std::vector<std::pair<TopLevel::ImportKind, Early::ImportData>>> + &&data, + TopLevel &toplevel, NameResolutionContext &ctx); + + void go (AST::Crate &crate); + +private: + void visit (AST::UseDeclaration &) override; + + std::unordered_map< + NodeId, std::vector<std::pair<TopLevel::ImportKind, Early::ImportData>>> + data; + TopLevel &toplevel; + NameResolutionContext &ctx; }; } // namespace Resolver2_0 |