https://gcc.gnu.org/g:681fb2543a44c895c989d6a68d5ac6d01ae49bc9

commit r17-4326-g681fb2543a44c895c989d6a68d5ac6d01ae49bc9
Author: Pierre-Emmanuel Patry <[email protected]>
Date:   Thu Sep 3 19:26:12 2026 +0200

    gccrs: Replace indexing with reverse iterator
    
    This change makes the code a bit simpler, it comes from a series of patch
    that got deleted and was iterating backward on the self segments.
    
    gcc/rust/ChangeLog:
    
            * resolve/rust-early-name-resolver-2.0.cc 
(Early::finalize_rebind_import):
            Use a reverse iterator instead of an index.
    
    Signed-off-by: Pierre-Emmanuel Patry <[email protected]>

Diff:
---
 gcc/rust/resolve/rust-early-name-resolver-2.0.cc | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/gcc/rust/resolve/rust-early-name-resolver-2.0.cc 
b/gcc/rust/resolve/rust-early-name-resolver-2.0.cc
index 28e1d90a5348..cb67af3e9b3d 100644
--- a/gcc/rust/resolve/rust-early-name-resolver-2.0.cc
+++ b/gcc/rust/resolve/rust-early-name-resolver-2.0.cc
@@ -540,8 +540,11 @@ Early::finalize_rebind_import (const Early::ImportPair 
&mapping)
            // Erroneous `self` or `{self}` use declaration
            if (segments.size () == 1)
              return;
-           declared_name = segments[segments.size () - 2].as_string ();
-           import_id = segments[segments.size () - 2].get_node_id ();
+
+           auto pre_self_segment = segments.rbegin () + 1;
+
+           declared_name = pre_self_segment->as_string ();
+           import_id = pre_self_segment->get_node_id ();
          }
        else
          {

Reply via email to