[gcc r14-7474] gccrs: ast: Fix StructExprStruct tokenstream
Arthur Cohen
cohenarthur@gcc.gnu.org
Tue Jan 16 17:37:52 GMT 2024
https://gcc.gnu.org/g:7d8de1ca4a78ec7bf9cdd7e5cbe9d11bd2546efe
commit r14-7474-g7d8de1ca4a78ec7bf9cdd7e5cbe9d11bd2546efe
Author: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Date: Wed Apr 5 13:45:36 2023 +0200
gccrs: ast: Fix StructExprStruct tokenstream
StructExprStructFields inherit from StructExprStruct and shall output
the struct name and curly braces.
gcc/rust/ChangeLog:
* ast/rust-ast-tokenstream.cc (TokenStream::visit): Add struct
name and curly braces to output tokenstream.
Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Diff:
---
gcc/rust/ast/rust-ast-tokenstream.cc | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
diff --git a/gcc/rust/ast/rust-ast-tokenstream.cc b/gcc/rust/ast/rust-ast-tokenstream.cc
index 8c54141fd78..cdfd8701c6d 100644
--- a/gcc/rust/ast/rust-ast-tokenstream.cc
+++ b/gcc/rust/ast/rust-ast-tokenstream.cc
@@ -1111,11 +1111,6 @@ void
TokenStream::visit (StructExprStruct &expr)
{
visit (expr.get_struct_name ());
- tokens.push_back (Rust::Token::make (LEFT_CURLY, expr.get_locus ()));
- // FIXME: Reference says it should have fields but node doesn't have them for
- // now. We need to disambiguate with StructExprUnit and visit fields.
- gcc_unreachable ();
- tokens.push_back (Rust::Token::make (RIGHT_CURLY, Location ()));
}
void
@@ -1161,6 +1156,8 @@ TokenStream::visit (StructBase &base)
void
TokenStream::visit (StructExprStructFields &expr)
{
+ visit (expr.get_struct_name ());
+ tokens.push_back (Rust::Token::make (LEFT_CURLY, expr.get_locus ()));
visit_items_joined_by_separator (expr.get_fields (), COMMA);
if (expr.has_struct_base ())
{
@@ -1171,6 +1168,7 @@ TokenStream::visit (StructExprStructFields &expr)
{
trailing_comma ();
}
+ tokens.push_back (Rust::Token::make (RIGHT_CURLY, expr.get_locus ()));
}
void
More information about the Gcc-cvs
mailing list