From: Pierre-Emmanuel Patry <[email protected]>

The string representation used an opening scope even if the path did not
reference the extern prelude.

gcc/rust/ChangeLog:

        * resolve/rust-forever-stack.h: Only output an opening scope double
        semicolon when we use it.

Signed-off-by: Pierre-Emmanuel Patry <[email protected]>

Tested on x86_64-pc-linux-gnu.

---
 gcc/rust/resolve/rust-forever-stack.h | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/gcc/rust/resolve/rust-forever-stack.h 
b/gcc/rust/resolve/rust-forever-stack.h
index 388af2e611f..22cb6885094 100644
--- a/gcc/rust/resolve/rust-forever-stack.h
+++ b/gcc/rust/resolve/rust-forever-stack.h
@@ -457,10 +457,17 @@ public:
   std::string as_string () const
   {
     std::string ret;
+    auto it = segments.cbegin ();
     if (lang_prefix)
-      ret = "#[lang]::";
-    for (auto &seg : segments)
-      ret += "::" + seg.name;
+      ret = "#[lang]";
+    else
+      {
+       ret += it->name;
+       it++;
+      }
+
+    for (; it != segments.cend (); it++)
+      ret += "::" + it->name;
     return ret;
   }
 
-- 
2.55.0

Reply via email to