Browse Source

Fix SD-1692 - Code Competion shows instance members twice

pull/14/head
Daniel Grunwald 15 years ago
parent
commit
a7e0084e09
  1. 24
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CtrlSpaceResolveHelper.cs

24
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/CtrlSpaceResolveHelper.cs

@ -47,31 +47,23 @@ namespace ICSharpCode.SharpDevelop.Dom @@ -47,31 +47,23 @@ namespace ICSharpCode.SharpDevelop.Dom
if (callingClass != null) {
AddTypeParametersForCtrlSpace(result, callingClass.TypeParameters);
List<ICompletionEntry> members = new List<ICompletionEntry>();
IReturnType t = callingClass.DefaultReturnType;
members.AddRange(t.GetMethods());
members.AddRange(t.GetFields());
members.AddRange(t.GetEvents());
members.AddRange(t.GetProperties());
foreach (IMember m in members) {
if ((!inStatic || m.IsStatic) && m.IsAccessible(callingClass, true)) {
var language = callingClass.ProjectContent.Language;
foreach (IMember m in MemberLookupHelper.GetAccessibleMembers(t, callingClass, language, true)) {
if ((!inStatic || m.IsStatic) && language.ShowMember(m, m.IsStatic))
result.Add(m);
}
}
members.Clear();
IClass c = callingClass.DeclaringType;
while (c != null) {
t = c.DefaultReturnType;
members.AddRange(t.GetMethods());
members.AddRange(t.GetFields());
members.AddRange(t.GetEvents());
members.AddRange(t.GetProperties());
c = c.DeclaringType;
}
foreach (IMember m in members) {
if (m.IsStatic) {
result.Add(m);
foreach (IMember m in MemberLookupHelper.GetAccessibleMembers(t, c, language, true)) {
if (language.ShowMember(m, true))
result.Add(m);
}
c = c.DeclaringType;
}
}
}

Loading…
Cancel
Save