diff options
Diffstat (limited to 'gcc/rust/resolve/rust-ast-resolve-stmt.h')
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-stmt.h | 35 |
1 files changed, 29 insertions, 6 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve-stmt.h b/gcc/rust/resolve/rust-ast-resolve-stmt.h index 308de14..3afed53 100644 --- a/gcc/rust/resolve/rust-ast-resolve-stmt.h +++ b/gcc/rust/resolve/rust-ast-resolve-stmt.h @@ -37,6 +37,9 @@ public: const CanonicalPath &canonical_prefix, const CanonicalPath &enum_prefix) { + if (stmt->is_marked_for_strip ()) + return; + ResolveStmt resolver (parent, prefix, canonical_prefix, enum_prefix); stmt->accept_vis (resolver); }; @@ -208,7 +211,12 @@ public: }); 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 @@ -229,7 +237,12 @@ public: }); 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 @@ -282,8 +295,13 @@ public: } 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 (); } @@ -317,8 +335,13 @@ public: } 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 (); } |