aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust
diff options
context:
space:
mode:
authorDavid Faust <david.faust@oracle.com>2022-10-06 13:43:06 -0700
committerArthur Cohen <arthur.cohen@embecosm.com>2023-02-21 12:36:32 +0100
commit4c807ef70db1d8832dc5887f4458164832619d3c (patch)
tree07308735f3f37a0b80bb48f31f3e10cb0726bd3e /gcc/rust
parent8d02ef57a691080472afb6558cfb1f34c98b0100 (diff)
downloadgcc-4c807ef70db1d8832dc5887f4458164832619d3c.zip
gcc-4c807ef70db1d8832dc5887f4458164832619d3c.tar.gz
gcc-4c807ef70db1d8832dc5887f4458164832619d3c.tar.bz2
gccrs: ast: dump: add format_{tuple,struct}_field helpers
gcc/rust/ChangeLog: * ast/rust-ast-dump.cc (Dump::format_tuple_field): New. (Dump::format_struct_field): New. * ast/rust-ast-dump.h (format_tuple_field): New. (format_struct_field): New.
Diffstat (limited to 'gcc/rust')
-rw-r--r--gcc/rust/ast/rust-ast-dump.cc17
-rw-r--r--gcc/rust/ast/rust-ast-dump.h6
2 files changed, 23 insertions, 0 deletions
diff --git a/gcc/rust/ast/rust-ast-dump.cc b/gcc/rust/ast/rust-ast-dump.cc
index b192556..6f2f816 100644
--- a/gcc/rust/ast/rust-ast-dump.cc
+++ b/gcc/rust/ast/rust-ast-dump.cc
@@ -157,6 +157,23 @@ Dump::emit_generic_params (std::vector<std::unique_ptr<GenericParam>> &params)
}
void
+Dump::format_tuple_field (TupleField &field)
+{
+ // TODO: do we need to emit outer attrs here?
+ emit_visibility (field.get_visibility ());
+ field.get_field_type ()->accept_vis (*this);
+}
+
+void
+Dump::format_struct_field (StructField &field)
+{
+ // TODO: do we need to emit outer attrs here?
+ emit_visibility (field.get_visibility ());
+ stream << field.get_field_name () << ": ";
+ field.get_field_type ()->accept_vis (*this);
+}
+
+void
Dump::visit (Token &tok)
{}
diff --git a/gcc/rust/ast/rust-ast-dump.h b/gcc/rust/ast/rust-ast-dump.h
index 1bbefb3..2da2736 100644
--- a/gcc/rust/ast/rust-ast-dump.h
+++ b/gcc/rust/ast/rust-ast-dump.h
@@ -100,6 +100,12 @@ private:
// Emit formatted string for generic parameters.
void emit_generic_params (std::vector<std::unique_ptr<GenericParam>> &params);
+ // Format a single field of a tuple.
+ void format_tuple_field (TupleField &field);
+
+ // Format a single field of a struct.
+ void format_struct_field (StructField &field);
+
// rust-ast.h
void visit (Token &tok);
void visit (DelimTokenTree &delim_tok_tree);