void TranslateModifiers(MethodDefinition method, AbstractMember m) { if (m.DeclaringTypeDefinition.ClassType == ClassType.Interface) { // interface members don't have modifiers, but we want to handle them as "public abstract" m.Accessibility = Accessibility.Public; m.IsAbstract = true; } else { m.Accessibility = GetAccessibility(method.Attributes); if (method.IsAbstract) { m.IsAbstract = true; m.IsOverride = !method.IsNewSlot; } else if (method.IsFinal) { if (!method.IsNewSlot) { m.IsSealed = true; m.IsOverride = true; } } else if (method.IsVirtual) { if (method.IsNewSlot) m.IsVirtual = true; else m.IsOverride = true; } m.IsStatic = method.IsStatic; } }
void FinishReadMember(AbstractMember member) { member.Freeze(); member.ApplyInterningProvider(this.InterningProvider); }