diff options
author | Philip Herron <philip.herron@embecosm.com> | 2022-07-08 15:08:08 +0100 |
---|---|---|
committer | Philip Herron <philip.herron@embecosm.com> | 2022-07-15 12:01:38 +0100 |
commit | e3f135ef0beb51b77cae7c6af40c5a1c4dfe7722 (patch) | |
tree | a61253ca546547316530bbc77ea4cc303d00419d /gcc/rust/resolve | |
parent | f51284b598863eb0cbeb2984fd1499a672f2191d (diff) | |
download | gcc-e3f135ef0beb51b77cae7c6af40c5a1c4dfe7722.zip gcc-e3f135ef0beb51b77cae7c6af40c5a1c4dfe7722.tar.gz gcc-e3f135ef0beb51b77cae7c6af40c5a1c4dfe7722.tar.bz2 |
Add new interface to mappings class crate_num_to_nodeid and node_is_crate
In order to load and resolve extern crates we need to support detection
of node_id is a crate in order to support paths outside of the current
crate.
Diffstat (limited to 'gcc/rust/resolve')
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-path.cc | 3 | ||||
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-type.cc | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve-path.cc b/gcc/rust/resolve/rust-ast-resolve-path.cc index a03bfb4..27f32aa 100644 --- a/gcc/rust/resolve/rust-ast-resolve-path.cc +++ b/gcc/rust/resolve/rust-ast-resolve-path.cc @@ -199,7 +199,8 @@ ResolvePath::resolve_path (AST::PathInExpression *expr) bool did_resolve_segment = resolved_node_id != UNKNOWN_NODEID; if (did_resolve_segment) { - if (mappings->node_is_module (resolved_node_id)) + if (mappings->node_is_module (resolved_node_id) + || mappings->node_is_crate (resolved_node_id)) { module_scope_id = resolved_node_id; } diff --git a/gcc/rust/resolve/rust-ast-resolve-type.cc b/gcc/rust/resolve/rust-ast-resolve-type.cc index 8e85889..04183a4 100644 --- a/gcc/rust/resolve/rust-ast-resolve-type.cc +++ b/gcc/rust/resolve/rust-ast-resolve-type.cc @@ -220,7 +220,8 @@ ResolveRelativeTypePath::go (AST::TypePath &path, NodeId &resolved_node_id) bool did_resolve_segment = resolved_node_id != UNKNOWN_NODEID; if (did_resolve_segment) { - if (mappings->node_is_module (resolved_node_id)) + if (mappings->node_is_module (resolved_node_id) + || mappings->node_is_crate (resolved_node_id)) { module_scope_id = resolved_node_id; } |