diff options
author | Philip Herron <philip.herron@embecosm.com> | 2022-02-02 15:05:19 +0000 |
---|---|---|
committer | Philip Herron <philip.herron@embecosm.com> | 2022-02-02 16:47:19 +0000 |
commit | 4d1ca35582e69e8677bd96775edbf03b6eec6ab8 (patch) | |
tree | 4baa7da3f520efec9d02c4d0c44a8b07268a6f5d /gcc/rust/resolve/rust-ast-resolve-item.h | |
parent | f7f14de056eb3887e70f29b0f29da4025f746559 (diff) | |
download | gcc-4d1ca35582e69e8677bd96775edbf03b6eec6ab8.zip gcc-4d1ca35582e69e8677bd96775edbf03b6eec6ab8.tar.gz gcc-4d1ca35582e69e8677bd96775edbf03b6eec6ab8.tar.bz2 |
Apply the is_marked_for_strip check to the rest of the crate
We need to apply this to all levels of the crate:
Item
impl-item
trait-item
Stmt
Diffstat (limited to 'gcc/rust/resolve/rust-ast-resolve-item.h')
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-item.h | 53 |
1 files changed, 42 insertions, 11 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve-item.h b/gcc/rust/resolve/rust-ast-resolve-item.h index cff3dbb..5d32c00 100644 --- a/gcc/rust/resolve/rust-ast-resolve-item.h +++ b/gcc/rust/resolve/rust-ast-resolve-item.h @@ -38,6 +38,9 @@ public: static void go (AST::TraitItem *item, const CanonicalPath &prefix, const CanonicalPath &canonical_prefix) { + if (item->is_marked_for_strip ()) + return; + ResolveTraitItems resolver (prefix, canonical_prefix); item->accept_vis (resolver); }; @@ -303,8 +306,13 @@ public: ResolveWhereClause::Resolve (struct_decl.get_where_clause ()); for (AST::TupleField &field : struct_decl.get_fields ()) - ResolveType::go (field.get_field_type ().get (), - struct_decl.get_node_id ()); + { + if (field.get_field_type ()->is_marked_for_strip ()) + continue; + + ResolveType::go (field.get_field_type ().get (), + struct_decl.get_node_id ()); + } resolver->get_type_scope ().pop (); } @@ -360,7 +368,12 @@ public: item.get_node_id (), cpath); for (auto &field : item.get_tuple_fields ()) - ResolveType::go (field.get_field_type ().get (), item.get_node_id ()); + { + if (field.get_field_type ()->is_marked_for_strip ()) + continue; + + ResolveType::go (field.get_field_type ().get (), item.get_node_id ()); + } } void visit (AST::EnumItemStruct &item) override @@ -373,7 +386,12 @@ public: item.get_node_id (), cpath); for (auto &field : item.get_struct_fields ()) - ResolveType::go (field.get_field_type ().get (), item.get_node_id ()); + { + if (field.get_field_type ()->is_marked_for_strip ()) + continue; + + ResolveType::go (field.get_field_type ().get (), item.get_node_id ()); + } } void visit (AST::EnumItemDiscriminant &item) override @@ -412,8 +430,13 @@ public: ResolveWhereClause::Resolve (struct_decl.get_where_clause ()); for (AST::StructField &field : struct_decl.get_fields ()) - ResolveType::go (field.get_field_type ().get (), - struct_decl.get_node_id ()); + { + if (field.get_field_type ()->is_marked_for_strip ()) + continue; + + ResolveType::go (field.get_field_type ().get (), + struct_decl.get_node_id ()); + } resolver->get_type_scope ().pop (); } @@ -442,8 +465,13 @@ public: ResolveWhereClause::Resolve (union_decl.get_where_clause ()); for (AST::StructField &field : union_decl.get_variants ()) - ResolveType::go (field.get_field_type ().get (), - union_decl.get_node_id ()); + { + if (field.get_field_type ()->is_marked_for_strip ()) + continue; + + ResolveType::go (field.get_field_type ().get (), + union_decl.get_node_id ()); + } resolver->get_type_scope ().pop (); } @@ -486,9 +514,6 @@ public: void visit (AST::Function &function) override { - if (function.is_marked_for_strip ()) - return; - auto decl = ResolveFunctionItemToCanonicalPath::resolve (function); auto path = prefix.append (decl); auto cpath = canonical_prefix.append (decl); @@ -884,6 +909,9 @@ public: static void go (AST::InherentImplItem *item, const CanonicalPath &prefix, const CanonicalPath &canonical_prefix) { + if (item->is_marked_for_strip ()) + return; + ResolveImplItems resolver (prefix, canonical_prefix); item->accept_vis (resolver); }; @@ -891,6 +919,9 @@ public: static void go (AST::TraitImplItem *item, const CanonicalPath &prefix, const CanonicalPath &canonical_prefix) { + if (item->is_marked_for_strip ()) + return; + ResolveImplItems resolver (prefix, canonical_prefix); item->accept_vis (resolver); }; |