aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/resolve/rust-ast-resolve-toplevel.h
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2024-02-22 18:55:53 +0100
committerP-E-P <32375388+P-E-P@users.noreply.github.com>2024-03-13 11:58:12 +0000
commit75dc00584e0e7a73ddcbef358abae24762b27bcd (patch)
tree3fe9451d4e13f681abf77959819acddc03d32b25 /gcc/rust/resolve/rust-ast-resolve-toplevel.h
parent843d7d7b46133fc471ed51d165a979c5af059aea (diff)
downloadgcc-75dc00584e0e7a73ddcbef358abae24762b27bcd.zip
gcc-75dc00584e0e7a73ddcbef358abae24762b27bcd.tar.gz
gcc-75dc00584e0e7a73ddcbef358abae24762b27bcd.tar.bz2
Replace unique_ptr references with references
This kind of double indirection is pointless and prone to error. This commit change the api of all getters from the AST to use references directly instead of references to unique pointers. gcc/rust/ChangeLog: * ast/rust-ast-collector.cc (TokenCollector::visit): Remove reference to unique pointer and replace it with a direct reference to the wrapped data. * ast/rust-ast.cc (VariadicParam::as_string): Likewise. (BlockExpr::normalize_tail_expr): Likewise. * ast/rust-expr.h: Likewise and add pointer getter in order to allow pointer reseat. * ast/rust-item.h: Likewise and add pointer getter for reseat. * ast/rust-path.h: Likewise. * ast/rust-pattern.h: Likewise. * ast/rust-stmt.h: Likewise. * ast/rust-type.h: Likewise. * expand/rust-cfg-strip.cc (CfgStrip::maybe_strip_struct_fields): Remove references to unique pointers and replace it with direct references to the wrapped object. (CfgStrip::maybe_strip_tuple_fields): Likewise. (CfgStrip::maybe_strip_generic_args): Likewise. (CfgStrip::maybe_strip_qualified_path_type): Likewise. (CfgStrip::visit): Likewise. * expand/rust-expand-visitor.cc (ExpandVisitor::maybe_expand_expr): Likewise. (ExpandVisitor::maybe_expand_type): Likewise. (ExpandVisitor::visit): Likewise. * expand/rust-expand-visitor.h: Likewise. * hir/rust-ast-lower-base.cc (ASTLoweringBase::lower_binding): Likewise. (ASTLoweringBase::lower_generic_args): Likewise. (ASTLoweringBase::lower_self): Likewise. (ASTLoweringBase::lower_type_no_bounds): Likewise. (ASTLoweringBase::lower_bound): Likewise. (ASTLoweringBase::lower_range_pattern_bound): Likewise. * hir/rust-ast-lower-base.h: Likewise. * hir/rust-ast-lower-block.h: Likewise. * hir/rust-ast-lower-enumitem.h: Likewise. * hir/rust-ast-lower-expr.cc (ASTLoweringExpr::translate): Likewise. (ASTLoweringExpr::visit): Likewise. * hir/rust-ast-lower-expr.h: Likewise. * hir/rust-ast-lower-extern.h: Likewise. * hir/rust-ast-lower-implitem.cc (ASTLowerImplItem::translate): Likewise. (ASTLowerImplItem::visit): Likewise. (ASTLowerTraitItem::translate): Likewise. (ASTLowerTraitItem::visit): Likewise. * hir/rust-ast-lower-implitem.h: Likewise. * hir/rust-ast-lower-item.cc (ASTLoweringItem::translate): Likewise. (ASTLoweringItem::visit): Likewise. * hir/rust-ast-lower-item.h: Likewise. * hir/rust-ast-lower-pattern.cc (ASTLoweringPattern::translate): Likewise. (ASTLoweringPattern::visit): Likewise. * hir/rust-ast-lower-pattern.h: Likewise. * hir/rust-ast-lower-stmt.cc (ASTLoweringStmt::visit): Likewise. * hir/rust-ast-lower-struct-field-expr.h: Likewise. * hir/rust-ast-lower-type.cc (ASTLowerTypePath::visit): Likewise. (ASTLowerQualifiedPathInType::visit): Likewise. (ASTLoweringType::translate): Likewise. (ASTLoweringType::visit): Likewise. (ASTLowerGenericParam::translate): Likewise. (ASTLowerGenericParam::visit): Likewise. (ASTLoweringTypeBounds::translate): Likewise. (ASTLoweringTypeBounds::visit): Likewise. (ASTLowerWhereClauseItem::visit): Likewise. * hir/rust-ast-lower-type.h: Likewise. * hir/rust-ast-lower.cc (ASTLowering::go): Likewise. (ASTLoweringBlock::visit): Likewise. (ASTLoweringIfBlock::visit): Likewise. (ASTLoweringIfLetBlock::visit): Likewise. (ASTLowerStructExprField::visit): Likewise. (ASTLoweringExprWithBlock::visit): Likewise. (ASTLoweringBase::lower_qual_path_type): Likewise. (ASTLoweringBase::lower_closure_param): Likewise. * resolve/rust-ast-resolve-base.cc (ResolverBase::resolve_visibility): Likewise. * resolve/rust-ast-resolve-expr.cc (ResolveExpr::go): Likewise. (ResolveExpr::visit): Likewise. (ResolveExpr::resolve_closure_param): Likewise. * resolve/rust-ast-resolve-expr.h: Likewise. * resolve/rust-ast-resolve-implitem.h: Likewise. * resolve/rust-ast-resolve-item.cc (ResolveTraitItems::visit): Likewise. (ResolveItem::go): Likewise. (ResolveItem::visit): Likewise. (ResolveItem::resolve_impl_item): Likewise. (ResolveItem::resolve_extern_item): Likewise. (ResolveImplItems::go): Likewise. (ResolveExternItem::go): Likewise. (ResolveExternItem::visit): Likewise. * resolve/rust-ast-resolve-item.h: Likewise. * resolve/rust-ast-resolve-path.cc (ResolvePath::go): Likewise. (ResolvePath::resolve_path): Likewise. * resolve/rust-ast-resolve-path.h: Likewise. * resolve/rust-ast-resolve-pattern.cc (PatternDeclaration::go): Likewise. (PatternDeclaration::visit): Likewise. (resolve_range_pattern_bound): Likewise. * resolve/rust-ast-resolve-pattern.h: Likewise. * resolve/rust-ast-resolve-stmt.cc (ResolveStmt::visit): Likewise. * resolve/rust-ast-resolve-stmt.h: Likewise. * resolve/rust-ast-resolve-struct-expr-field.cc (ResolveStructExprField::go): Likewise. (ResolveStructExprField::visit): Likewise. * resolve/rust-ast-resolve-struct-expr-field.h: Likewise. * resolve/rust-ast-resolve-toplevel.h: Likewise. * resolve/rust-ast-resolve-type.cc (ResolveType::visit): Likewise. (ResolveRelativeTypePath::go): Likewise. (ResolveRelativeQualTypePath::resolve_qual_seg): Likewise. (ResolveTypeToCanonicalPath::go): Likewise. (ResolveTypeToCanonicalPath::visit): Likewise. (ResolveGenericArgs::resolve_disambiguated_generic): Likewise. (ResolveGenericArgs::go): Likewise. * resolve/rust-ast-resolve-type.h: Likewise. * resolve/rust-ast-resolve.cc (NameResolution::go): Likewise. * resolve/rust-default-resolver.cc (DefaultResolver::visit): Likewise. * resolve/rust-early-name-resolver.cc (EarlyNameResolver::resolve_qualified_path_type): Likewise. (EarlyNameResolver::visit): Likewise. * resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Likewise. * checks/errors/rust-ast-validation.cc: Likewise. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Diffstat (limited to 'gcc/rust/resolve/rust-ast-resolve-toplevel.h')
-rw-r--r--gcc/rust/resolve/rust-ast-resolve-toplevel.h26
1 files changed, 13 insertions, 13 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve-toplevel.h b/gcc/rust/resolve/rust-ast-resolve-toplevel.h
index 73b4d29..7576928 100644
--- a/gcc/rust/resolve/rust-ast-resolve-toplevel.h
+++ b/gcc/rust/resolve/rust-ast-resolve-toplevel.h
@@ -31,18 +31,18 @@ class ResolveTopLevel : public ResolverBase
using Rust::Resolver::ResolverBase::visit;
public:
- static void go (AST::Item *item, const CanonicalPath &prefix,
+ static void go (AST::Item &item, const CanonicalPath &prefix,
const CanonicalPath &canonical_prefix)
{
- if (item->is_marked_for_strip ())
+ if (item.is_marked_for_strip ())
return;
ResolveTopLevel resolver (prefix, canonical_prefix);
- item->accept_vis (resolver);
+ item.accept_vis (resolver);
NodeId current_module = resolver.resolver->peek_current_module_scope ();
resolver.mappings->insert_child_item_to_parent_module_mapping (
- item->get_node_id (), current_module);
+ item.get_node_id (), current_module);
}
void visit (AST::Module &module) override
@@ -67,7 +67,7 @@ public:
resolver->push_new_module_scope (module.get_node_id ());
for (auto &item : module.get_items ())
- ResolveTopLevel::go (item.get (), path, cpath);
+ ResolveTopLevel::go (*item, path, cpath);
resolver->pop_module_scope ();
@@ -137,7 +137,7 @@ public:
resolver->push_new_module_scope (enum_decl.get_node_id ());
for (auto &variant : enum_decl.get_variants ())
- ResolveTopLevel::go (variant.get (), path, cpath);
+ ResolveTopLevel::go (*variant, path, cpath);
resolver->pop_module_scope ();
@@ -343,9 +343,9 @@ public:
void visit (AST::InherentImpl &impl_block) override
{
- std::string raw_impl_type_path = impl_block.get_type ()->as_string ();
+ std::string raw_impl_type_path = impl_block.get_type ().as_string ();
CanonicalPath impl_type_seg
- = CanonicalPath::new_seg (impl_block.get_type ()->get_node_id (),
+ = CanonicalPath::new_seg (impl_block.get_type ().get_node_id (),
raw_impl_type_path);
CanonicalPath impl_type
@@ -354,14 +354,14 @@ public:
CanonicalPath impl_prefix = prefix.append (impl_type_seg);
for (auto &impl_item : impl_block.get_impl_items ())
- ResolveToplevelImplItem::go (impl_item.get (), impl_prefix);
+ ResolveToplevelImplItem::go (*impl_item, impl_prefix);
}
void visit (AST::TraitImpl &impl_block) override
{
- std::string raw_impl_type_path = impl_block.get_type ()->as_string ();
+ std::string raw_impl_type_path = impl_block.get_type ().as_string ();
CanonicalPath impl_type_seg
- = CanonicalPath::new_seg (impl_block.get_type ()->get_node_id (),
+ = CanonicalPath::new_seg (impl_block.get_type ().get_node_id (),
raw_impl_type_path);
std::string raw_trait_type_path = impl_block.get_trait_path ().as_string ();
@@ -385,7 +385,7 @@ public:
});
for (auto &impl_item : impl_block.get_impl_items ())
- ResolveToplevelImplItem::go (impl_item.get (), impl_prefix);
+ ResolveToplevelImplItem::go (*impl_item, impl_prefix);
}
void visit (AST::Trait &trait) override
@@ -416,7 +416,7 @@ public:
{
for (auto &item : extern_block.get_extern_items ())
{
- ResolveToplevelExternItem::go (item.get (), prefix);
+ ResolveToplevelExternItem::go (*item, prefix);
}
}