static void CleanType (TypeDefinition type)
{
- if (type.HasNestedTypes)
- CleanNestedTypes (type);
if (type.HasProperties)
CleanProperties (type);
if (type.HasEvents)
CleanEvents (type);
}
- static void CleanNestedTypes (TypeDefinition type)
- {
- var nested_types = type.NestedTypes;
-
- for (int i = 0; i < nested_types.Count; i++) {
- var nested_type = nested_types [i];
- if (!type.Module.Types.Contains (nested_type))
- nested_types.RemoveAt (i--);
- }
- }
-
static MethodDefinition CheckMethod (TypeDefinition type, MethodDefinition method)
{
if (method == null)
if (type.HasMethods)
SweepCollection (type.Methods);
+
+ if (type.HasNestedTypes)
+ SweepNestedTypes (type);
+ }
+
+ void SweepNestedTypes (TypeDefinition type)
+ {
+ for (int i = 0; i < type.NestedTypes.Count; i++) {
+ var nested = type.NestedTypes [i];
+ if (Annotations.IsMarked (nested)) {
+ SweepType (nested);
+ } else {
+ //type.NestedTypes.RemoveAt (i--);
+ }
+ }
}
void SweepCollection (IList list)