diff --git a/src/Microsoft.Android.Sdk.ILLink/RemoveAttributesBase.cs b/src/Microsoft.Android.Sdk.ILLink/RemoveAttributesBase.cs deleted file mode 100644 index 7f9cc8c40ef..00000000000 --- a/src/Microsoft.Android.Sdk.ILLink/RemoveAttributesBase.cs +++ /dev/null @@ -1,103 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; - -using Mono.Linker; -using Mono.Linker.Steps; - -using Mono.Tuner; - -using Mono.Cecil; - -namespace Microsoft.Android.Sdk.ILLink -{ - public abstract class RemoveAttributesBase : BaseSubStep { - - public override SubStepTargets Targets { - get { - return SubStepTargets.Assembly - | SubStepTargets.Type - | SubStepTargets.Field - | SubStepTargets.Method - | SubStepTargets.Property - | SubStepTargets.Event; - } - } - - public override bool IsActiveFor (AssemblyDefinition assembly) - { - return Annotations.GetAction (assembly) == AssemblyAction.Link; - } - - public override void ProcessAssembly (AssemblyDefinition assembly) - { - ProcessAttributeProvider (assembly); - ProcessAttributeProvider (assembly.MainModule); - } - - public override void ProcessType (TypeDefinition type) - { - ProcessAttributeProvider (type); - - if (type.HasGenericParameters) - ProcessAttributeProviderCollection (type.GenericParameters); - } - - void ProcessAttributeProviderCollection (IList list) - { - for (int i = 0; i < list.Count; i++) - ProcessAttributeProvider ((ICustomAttributeProvider) list [i]); - } - - public override void ProcessField (FieldDefinition field) - { - ProcessAttributeProvider (field); - } - - public override void ProcessMethod (MethodDefinition method) - { - ProcessMethodAttributeProvider (method); - } - - void ProcessMethodAttributeProvider (MethodDefinition method) - { - ProcessAttributeProvider (method); - ProcessAttributeProvider (method.MethodReturnType); - - if (method.HasParameters) - ProcessAttributeProviderCollection (method.Parameters); - - if (method.HasGenericParameters) - ProcessAttributeProviderCollection (method.GenericParameters); - } - - public override void ProcessProperty (PropertyDefinition property) - { - ProcessAttributeProvider (property); - } - - public override void ProcessEvent (EventDefinition @event) - { - ProcessAttributeProvider (@event); - } - - void ProcessAttributeProvider (ICustomAttributeProvider provider) - { - if (!provider.HasCustomAttributes) - return; - - for (int i = 0; i < provider.CustomAttributes.Count; i++) { - var attrib = provider.CustomAttributes [i]; - if (!IsRemovedAttribute (attrib)) - continue; - - WillRemoveAttribute (provider, attrib); - provider.CustomAttributes.RemoveAt (i--); - } - } - - protected abstract bool IsRemovedAttribute (CustomAttribute attribute); - protected virtual void WillRemoveAttribute (ICustomAttributeProvider provider, CustomAttribute attribute) { } - } -}