From a8a27b074f40cbac16af37db4c03a1128ce8f201 Mon Sep 17 00:00:00 2001 From: Arthur Cohen Date: Thu, 23 Feb 2023 16:50:39 +0100 Subject: gccrs: ast: Add ExternalTypeItem node gcc/rust/ChangeLog: * ast/rust-item.h (class ExternalTypeItem): New class. * ast/rust-ast.cc (ExternalTypeItem::as_string): New function. (ExternalTypeItem::accept_vis): Likewise. * ast/rust-ast-full-decls.h (class ExternalTypeItem): Declare class. * ast/rust-ast-dump.cc (Dump::visit): Add base visitor for ExternalTypeItem. * ast/rust-ast-dump.h: Likewise. * ast/rust-ast-visitor.h: Likewise. * checks/errors/rust-feature-gate.h: Likewise. * expand/rust-attribute-visitor.cc (AttrVisitor::visit): Likewise. * expand/rust-attribute-visitor.h: Likewise. * hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Likewise. * hir/rust-ast-lower-base.h: Likewise. * resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Likewise. * resolve/rust-ast-resolve-base.h: Likewise. * resolve/rust-early-name-resolver.cc (EarlyNameResolver::visit): Likewise. * resolve/rust-early-name-resolver.h: Likewise. * util/rust-attributes.cc (AttributeChecker::visit): Likewise. * util/rust-attributes.h: Likewise. --- gcc/rust/ast/rust-ast.cc | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'gcc/rust/ast/rust-ast.cc') diff --git a/gcc/rust/ast/rust-ast.cc b/gcc/rust/ast/rust-ast.cc index 6692505..13d31cf 100644 --- a/gcc/rust/ast/rust-ast.cc +++ b/gcc/rust/ast/rust-ast.cc @@ -3407,6 +3407,16 @@ EnumItemDiscriminant::as_string () const } std::string +ExternalTypeItem::as_string () const +{ + auto str = append_attributes (outer_attrs, OUTER); + + str += "type " + item_name + ";"; + + return str; +} + +std::string ExternalStaticItem::as_string () const { // outer attributes @@ -5493,6 +5503,12 @@ TraitImpl::accept_vis (ASTVisitor &vis) } void +ExternalTypeItem::accept_vis (ASTVisitor &vis) +{ + vis.visit (*this); +} + +void ExternalStaticItem::accept_vis (ASTVisitor &vis) { vis.visit (*this); -- cgit v1.1