public EnableOverloadChecks ( |
||
overload | ||
return | bool |
/// <summary> /// Adds the member to defined_names table. It tests for duplications and enclosing name conflicts /// </summary> protected virtual bool AddToContainer (MemberCore symbol, string name) { MemberCore mc; if (!defined_names.TryGetValue (name, out mc)) { defined_names.Add (name, symbol); return true; } if (((mc.ModFlags | symbol.ModFlags) & Modifiers.COMPILER_GENERATED) != 0) return true; if (symbol.EnableOverloadChecks (mc)) return true; InterfaceMemberBase im = mc as InterfaceMemberBase; if (im != null && im.IsExplicitImpl) return true; Report.SymbolRelatedToPreviousError (mc); if ((mc.ModFlags & Modifiers.PARTIAL) != 0 && (symbol is ClassOrStruct || symbol is Interface)) { Error_MissingPartialModifier (symbol); return false; } if (this is ModuleContainer) { Report.Error (101, symbol.Location, "The namespace `{0}' already contains a definition for `{1}'", ((DeclSpace)symbol).NamespaceEntry.GetSignatureForError (), symbol.MemberName.Name); } else if (symbol is TypeParameter) { Report.Error (692, symbol.Location, "Duplicate type parameter `{0}'", symbol.GetSignatureForError ()); } else { Report.Error (102, symbol.Location, "The type `{0}' already contains a definition for `{1}'", GetSignatureForError (), symbol.MemberName.Name); } return false; }
// // Adds the member to defined_names table. It tests for duplications and enclosing name conflicts // public virtual void AddNameToContainer (MemberCore symbol, string name) { if (((ModFlags | symbol.ModFlags) & Modifiers.COMPILER_GENERATED) != 0) return; MemberCore mc; if (!PartialContainer.defined_names.TryGetValue (name, out mc)) { PartialContainer.defined_names.Add (name, symbol); return; } if (symbol.EnableOverloadChecks (mc)) return; InterfaceMemberBase im = mc as InterfaceMemberBase; if (im != null && im.IsExplicitImpl) return; Report.SymbolRelatedToPreviousError (mc); if ((mc.ModFlags & Modifiers.PARTIAL) != 0 && (symbol is ClassOrStruct || symbol is Interface)) { Error_MissingPartialModifier (symbol); return; } if (symbol is TypeParameter) { Report.Error (692, symbol.Location, "Duplicate type parameter `{0}'", symbol.GetSignatureForError ()); } else { Report.Error (102, symbol.Location, "The type `{0}' already contains a definition for `{1}'", GetSignatureForError (), name); } return; }
public override bool EnableOverloadChecks (MemberCore overload) { // TODO: It can be deleted when members will be defined in correct order if (overload is Operator) return overload.EnableOverloadChecks (this); if (overload is Indexer) return false; return base.EnableOverloadChecks (overload); }