static bool SubscriptParametersMatch(FunctionDeclaration getter, FunctionDeclaration setter) { if (getter.ParameterLists.Count != 2 || setter.ParameterLists.Count != 2) { return(false); } TypeSpec returnType = getter.ReturnTypeSpec; if (getter.ParameterLists [1].Count != setter.ParameterLists [1].Count - 1) { return(false); } if (!returnType.Equals(setter.ParameterLists [1] [0].TypeSpec)) { return(false); } return(ParameterItem.AreEqualIgnoreNamesReferencesInvariant(getter, getter.ParameterLists [1], setter, setter.ParameterLists [1].Skip(1).ToList(), true)); }
public bool MatchesSignature(FunctionDeclaration other, bool ignoreFirstParameterListIfPresent) { if (!TypeSpec.BothNullOrEqual(this.ReturnTypeSpec, other.ReturnTypeSpec)) { return(false); } if (this.ParameterLists.Count != other.ParameterLists.Count) { return(false); } int startIndex = ignoreFirstParameterListIfPresent && this.ParameterLists.Count > 1 ? 1 : 0; for (int i = startIndex; i < this.ParameterLists.Count; i++) { if (!ParameterItem.AreEqualIgnoreNamesReferencesInvariant(this, this.ParameterLists [i], other, other.ParameterLists [i], true)) { return(false); } } return(true); }