https://gcc.gnu.org/g:adf6afb8205de374e95d8fb08573428630289547
commit adf6afb8205de374e95d8fb08573428630289547 Author: Arthur Cohen <arthur.co...@embecosm.com> Date: Fri Jan 31 12:26:21 2025 +0000 nr2.0: late: Add proper handling for lang item PathInExpressions gcc/rust/ChangeLog: * resolve/rust-late-name-resolver-2.0.cc (Late::visit): Special case lang item paths. Diff: --- gcc/rust/resolve/rust-late-name-resolver-2.0.cc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 ec20e9af340f..a0c3a051ea70 100644 --- a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc +++ b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc @@ -254,8 +254,14 @@ Late::visit (AST::PathInExpression &expr) // TODO: How do we have a nice error with `can't capture dynamic environment // in a function item` error here? // do we emit it in `get<Namespace::Labels>`? + if (expr.is_lang_item ()) - return; + { + ctx.map_usage (Usage (expr.get_node_id ()), + Definition (Analysis::Mappings::get ().get_lang_item_node ( + expr.get_lang_item ()))); + return; + } auto resolved = ctx.values.resolve_path (expr.get_segments ()).or_else ([&] () {