aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorArthur Cohen <arthur.cohen@embecosm.com>2025-01-31 12:26:21 +0000
committerCohenArthur <arthur.cohen@embecosm.com>2025-02-02 18:28:48 +0000
commitadf6afb8205de374e95d8fb08573428630289547 (patch)
tree783609de8cdd9fe81e82a20bae940603e6aec90e /gcc
parentaf2fdca5a3c9c18159a02dc8e94a95e701b66f81 (diff)
downloadgcc-adf6afb8205de374e95d8fb08573428630289547.zip
gcc-adf6afb8205de374e95d8fb08573428630289547.tar.gz
gcc-adf6afb8205de374e95d8fb08573428630289547.tar.bz2
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.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/resolve/rust-late-name-resolver-2.0.cc8
1 files changed, 7 insertions, 1 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 ec20e9a..a0c3a05 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 ([&] () {