diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2025-01-15 11:55:54 +0000 |
---|---|---|
committer | CohenArthur <arthur.cohen@embecosm.com> | 2025-01-20 12:09:26 +0000 |
commit | 9c6e09e2f73c056ad30382a5d000d938e1dfd473 (patch) | |
tree | 4db682d02b4975922fb935c1be360f77894fddd0 /gcc | |
parent | 1c47dbe119b33765ab151d54a1992fe3ff44fbe8 (diff) | |
download | gcc-9c6e09e2f73c056ad30382a5d000d938e1dfd473.zip gcc-9c6e09e2f73c056ad30382a5d000d938e1dfd473.tar.gz gcc-9c6e09e2f73c056ad30382a5d000d938e1dfd473.tar.bz2 |
nr2.0: late: Better format PathInExpression resolution
gcc/rust/ChangeLog:
* resolve/rust-late-name-resolver-2.0.cc (Late::visit): Improve formatting.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/resolve/rust-late-name-resolver-2.0.cc | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc index 60b8952..f3ee08f 100644 --- a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc +++ b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc @@ -218,19 +218,12 @@ Late::visit (AST::PathInExpression &expr) // in a function item` error here? // do we emit it in `get<Namespace::Labels>`? - rust_debug ("[ARTHUR]: %s", expr.as_simple_path ().as_string ().c_str ()); + auto resolved + = ctx.values.resolve_path (expr.get_segments ()).or_else ([&] () { + return ctx.types.resolve_path (expr.get_segments ()); + }); - tl::optional<Rib::Definition> resolved = tl::nullopt; - - if (auto value = ctx.values.resolve_path (expr.get_segments ())) - { - resolved = value; - } - else if (auto type = ctx.types.resolve_path (expr.get_segments ())) - { - resolved = type; - } - else + if (!resolved) { rust_error_at (expr.get_locus (), "could not resolve path expression: %qs", @@ -244,6 +237,7 @@ Late::visit (AST::PathInExpression &expr) expr.as_string ().c_str ()); return; } + ctx.map_usage (Usage (expr.get_node_id ()), Definition (resolved->get_node_id ())); } |