public FunctionDefintion DeepCopy(ClassDefinition cd, Dictionary <string, string> replacementTypes) { var fd = new FunctionDefintion() { Name = Name, Type = Type.DeepCopy(replacementTypes), IsStatic = IsStatic, IsConstructor = IsConstructor, IsDestructor = IsDestructor, IsOperator = IsOperator, IsAbstract = IsAbstract, IsPublic = IsPublic, IsTemplate = IsTemplate, TemplateName = TemplateName, Class = cd }; if (replacementTypes.ContainsKey(Name)) { fd.Name = replacementTypes[Name]; fd.IsTemplate = fd.Name.Contains("<"); } foreach (var parameter in Parameters) { fd.Parameters.Add(parameter.DeepCopy(replacementTypes)); } return(fd); }
public bool IsEqual(FunctionDefintion other, int maxParameters = 255) { if (maxParameters == 255) { maxParameters = other.Parameters.Count; } if (Name.Equals(other.Name) && (IsStatic == other.IsStatic) && (Parameters.Count == maxParameters)) { for (int h = 0; h < Parameters.Count; h++) { if (h >= maxParameters) { break; } if (!Parameters[h].IsEqual(other.Parameters[h], true)) { return(false); } } return(true); } return(false); }