diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2025-01-15 11:55:54 +0000 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2025-03-21 12:57:51 +0100 |
commit | adbbf12a8f86ecb5c288302069f929d85c6b45ad (patch) | |
tree | 3c1ff4c5092cf339d23094acb79b324dbb42b88a /gcc | |
parent | adba3fff2d4e5538b2f924f11e947a6c13fcfaac (diff) | |
download | gcc-adbbf12a8f86ecb5c288302069f929d85c6b45ad.zip gcc-adbbf12a8f86ecb5c288302069f929d85c6b45ad.tar.gz gcc-adbbf12a8f86ecb5c288302069f929d85c6b45ad.tar.bz2 |
gccrs: 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 9da56ea..5aea6a4 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 ())); } |