From: Arthur Cohen Date: Fri, 31 Jan 2025 12:26:21 +0000 (+0000) Subject: gccrs: nr2.0: late: Add proper handling for lang item PathInExpressions X-Git-Tag: basepoints/gcc-16~788 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1c7507dd1a01e02275225e3cb7f2570014e524b0;p=thirdparty%2Fgcc.git gccrs: 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 --git a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc index a3b8e6a515f..7c414c47bc9 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`? + 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 ([&] () {