diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2025-01-22 12:36:59 +0000 |
---|---|---|
committer | Arthur Cohen <arthur.cohen@embecosm.com> | 2025-03-24 13:06:55 +0100 |
commit | 8d883fbc5536f2b727a3ab7899c5b7dbccdfb7aa (patch) | |
tree | 7c938ef88ff183db6109865652465d057b5a03f1 /gcc/rust/backend/rust-compile-resolve-path.cc | |
parent | d14bb437ed4731a42ad3a70a2f6b5216515bc804 (diff) | |
download | gcc-8d883fbc5536f2b727a3ab7899c5b7dbccdfb7aa.zip gcc-8d883fbc5536f2b727a3ab7899c5b7dbccdfb7aa.tar.gz gcc-8d883fbc5536f2b727a3ab7899c5b7dbccdfb7aa.tar.bz2 |
gccrs: 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 d248ee2..eb897b7 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 |