aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/resolve/rust-ast-resolve-stmt.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/rust/resolve/rust-ast-resolve-stmt.h')
-rw-r--r--gcc/rust/resolve/rust-ast-resolve-stmt.h35
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 ();
}