From e3f135ef0beb51b77cae7c6af40c5a1c4dfe7722 Mon Sep 17 00:00:00 2001 From: Philip Herron Date: Fri, 8 Jul 2022 15:08:08 +0100 Subject: 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. --- gcc/rust/resolve/rust-ast-resolve-path.cc | 3 ++- gcc/rust/resolve/rust-ast-resolve-type.cc | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) (limited to 'gcc/rust/resolve') 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; } -- cgit v1.1