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