From: Arthur Cohen Date: Wed, 15 Jan 2025 11:55:54 +0000 (+0000) Subject: gccrs: nr2.0: late: Better format PathInExpression resolution X-Git-Tag: basepoints/gcc-16~912 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=adbbf12a8f86ecb5c288302069f929d85c6b45ad;p=thirdparty%2Fgcc.git gccrs: nr2.0: late: Better format PathInExpression resolution gcc/rust/ChangeLog: * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Improve formatting. --- 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 9da56ea3214..5aea6a43ed6 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`? - 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 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 ())); }