private bool IsCorrectExplicitMemberImplOrNoExplicitMemberAtAll(TypeMember member, IMember entity) { ExplicitMemberInfo info = ((IExplicitMember)member).ExplicitInfo; return(info == null || entity.DeclaringType == GetType(info.InterfaceType)); }
override public void OnExplicitMemberInfo(ExplicitMemberInfo node) { TypeMember member = (TypeMember)node.ParentNode; CheckExplicitMemberValidity((IExplicitMember)member); member.Visibility = TypeMemberModifiers.Private; }
private bool IsCorrectExplicitMemberImplOrNoExplicitMemberAtAll(TypeMember member, IMember entity) { ExplicitMemberInfo info = ((IExplicitMember)member).ExplicitInfo; if (info == null) { return(true); } if (info.Entity != null) { return(false); // already bound to another member } return(entity.DeclaringType == GetType(info.InterfaceType)); }
void CheckExplicitImpl(IExplicitMember member) { ExplicitMemberInfo ei = member.ExplicitInfo; if (null == ei) { return; } TypeMember node = (TypeMember)member; if (TypeMemberModifiers.None != node.Modifiers) { Error( CompilerErrorFactory.ExplicitImplMustNotHaveModifiers( node, ei.InterfaceType.Name, node.Name)); } }
public override void OnExplicitMemberInfo(ExplicitMemberInfo node) { var member = (TypeMember)node.ParentNode; if (!CheckExplicitMemberValidity((IExplicitMember)member)) { return; } var interfaceType = GetEntity(node.InterfaceType); var baseMember = FindBaseMemberOf((IMember)member.Entity, interfaceType); if (null == baseMember) { Error(CompilerErrorFactory.NotAMemberOfExplicitInterface(member, interfaceType)); return; } TraceImplements(member, baseMember); node.Entity = baseMember; }
override public void OnExplicitMemberInfo(ExplicitMemberInfo node) { Visit(node.InterfaceType); }
public override void LeaveExplicitMemberInfo(ExplicitMemberInfo node) { var member = (TypeMember)node.ParentNode; member.Modifiers |= TypeMemberModifiers.Private | TypeMemberModifiers.Virtual; }
public override void OnExplicitMemberInfo(ExplicitMemberInfo node) { throw new NotImplementedException(); IL_0006 :; }
public override void OnExplicitMemberInfo(ExplicitMemberInfo node) { base.OnExplicitMemberInfo(node); Check(node); }