void AddResolveResults(ICollection list)
        {
            if (list == null) {
                return;
            }
            completionData.Capacity += list.Count;
            foreach (object o in list) {
                if (o is string) {
                    completionData.Add(new CodeCompletionData(o.ToString(), Stock.NameSpace));
                } else if (o is IClass) {
                    IClass iclass = (IClass) o;
                    if (iclass.Name != null && insertedClasses[iclass.Name] == null) {
                        completionData.Add(new CodeCompletionData(iclass));
                        insertedClasses[iclass.Name] = iclass;
                    }
                } else if (o is IProperty) {
                    IProperty property = (IProperty)o;
                    if (property.Name != null && insertedPropertiesElements[property.Name] == null) {
                        completionData.Add(new CodeCompletionData(property));
                        insertedPropertiesElements[property.Name] = property;
                    }
                } else if (o is IMethod) {
                    IMethod method = (IMethod)o;

                    if (method.Name != null &&!method.IsConstructor) {
                        CodeCompletionData ccd = new CodeCompletionData(method);
                        if (insertedElements[method.Name] == null) {
                            completionData.Add(ccd);
                            insertedElements[method.Name] = ccd;
                        } else {
                            CodeCompletionData firstMethod = (CodeCompletionData)insertedElements[method.Name];
            //							++firstMethod.Overloads;
                            firstMethod.AddOverload (ccd);
                        }
                    }
                } else if (o is IField) {
                    completionData.Add(new CodeCompletionData((IField)o));
                } else if (o is IEvent) {
                    IEvent e = (IEvent)o;
                    if (e.Name != null && insertedEventElements[e.Name] == null) {
                        completionData.Add(new CodeCompletionData(e));
                        insertedEventElements[e.Name] = e;
                    }
                } else if (o is IParameter) {
                    completionData.Add (new CodeCompletionData((IParameter)o));
                }
            }
        }
        public void AddOverload(CodeCompletionData overload)
        {
            string desc = overload.SimpleDescription;

            if (desc != description || !overload_data.Contains (desc))
                overload_data[desc] = overload;
        }