diff options
Diffstat (limited to 'gcc/rust/resolve/rust-name-resolution-context.cc')
-rw-r--r-- | gcc/rust/resolve/rust-name-resolution-context.cc | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/gcc/rust/resolve/rust-name-resolution-context.cc b/gcc/rust/resolve/rust-name-resolution-context.cc index d964684..9bfaa09 100644 --- a/gcc/rust/resolve/rust-name-resolution-context.cc +++ b/gcc/rust/resolve/rust-name-resolution-context.cc @@ -64,6 +64,24 @@ NameResolutionContext::insert_shadowable (Identifier name, NodeId id, } } +tl::expected<NodeId, DuplicateNameError> +NameResolutionContext::insert_globbed (Identifier name, NodeId id, Namespace ns) +{ + switch (ns) + { + case Namespace::Values: + return values.insert_globbed (name, id); + case Namespace::Types: + return types.insert_globbed (name, id); + case Namespace::Macros: + return macros.insert_globbed (name, id); + case Namespace::Labels: + default: + // return labels.insert (name, id); + rust_unreachable (); + } +} + void NameResolutionContext::map_usage (Usage usage, Definition definition) { @@ -74,7 +92,7 @@ NameResolutionContext::map_usage (Usage usage, Definition definition) } tl::optional<NodeId> -NameResolutionContext::lookup (NodeId usage) +NameResolutionContext::lookup (NodeId usage) const { auto it = resolved_nodes.find (Usage (usage)); |