diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2025-01-22 12:36:59 +0000 |
---|---|---|
committer | CohenArthur <arthur.cohen@embecosm.com> | 2025-01-28 17:35:37 +0000 |
commit | a7d273ca770382b941453a00f579abdf3e606f4a (patch) | |
tree | 7e680a3c18f4fe2c22f158fb1cd722b3d17d6951 /gcc/rust/backend/rust-compile-resolve-path.cc | |
parent | 068e33b4f8724c76c9515e890ec064dd49faa0f1 (diff) | |
download | gcc-a7d273ca770382b941453a00f579abdf3e606f4a.zip gcc-a7d273ca770382b941453a00f579abdf3e606f4a.tar.gz gcc-a7d273ca770382b941453a00f579abdf3e606f4a.tar.bz2 |
hir: Adapt visitors to lang item PathInExpressions
gcc/rust/ChangeLog:
* backend/rust-compile-resolve-path.cc (ResolvePathRef::visit): Adapt visitor to lang item
HIR::PathInExpressions.
* typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::visit): Likewise.
Diffstat (limited to 'gcc/rust/backend/rust-compile-resolve-path.cc')
-rw-r--r-- | gcc/rust/backend/rust-compile-resolve-path.cc | 22 |
1 files changed, 18 insertions, 4 deletions
diff --git a/gcc/rust/backend/rust-compile-resolve-path.cc b/gcc/rust/backend/rust-compile-resolve-path.cc index 74e95e5..3af3431 100644 --- a/gcc/rust/backend/rust-compile-resolve-path.cc +++ b/gcc/rust/backend/rust-compile-resolve-path.cc @@ -35,15 +35,29 @@ namespace Compile { void ResolvePathRef::visit (HIR::QualifiedPathInExpression &expr) { - resolved = resolve (expr.get_final_segment ().get_segment (), - expr.get_mappings (), expr.get_locus (), true); + auto final_segment = HIR::PathIdentSegment::create_error (); + if (expr.is_lang_item ()) + final_segment + = HIR::PathIdentSegment (LangItem::ToString (expr.get_lang_item ())); + else + final_segment = expr.get_final_segment ().get_segment (); + + resolved + = resolve (final_segment, expr.get_mappings (), expr.get_locus (), true); } void ResolvePathRef::visit (HIR::PathInExpression &expr) { - resolved = resolve (expr.get_final_segment ().get_segment (), - expr.get_mappings (), expr.get_locus (), false); + auto final_segment = HIR::PathIdentSegment::create_error (); + if (expr.is_lang_item ()) + final_segment + = HIR::PathIdentSegment (LangItem::ToString (expr.get_lang_item ())); + else + final_segment = expr.get_final_segment ().get_segment (); + + resolved + = resolve (final_segment, expr.get_mappings (), expr.get_locus (), true); } tree |