diff --git a/src/AddIns/Misc/SubversionAddIn/Project/ICSharpCode.Svn.addin b/src/AddIns/Misc/SubversionAddIn/Project/ICSharpCode.Svn.addin index fed49ab1c2..ae2d88f888 100644 --- a/src/AddIns/Misc/SubversionAddIn/Project/ICSharpCode.Svn.addin +++ b/src/AddIns/Misc/SubversionAddIn/Project/ICSharpCode.Svn.addin @@ -125,6 +125,11 @@ label = "${res:AddIns.Subversion.RemoveFromIgnoreList}" class = "ICSharpCode.Svn.Commands.UnignoreCommand"/> + + + (program, "base.KeyDown", 4); + Assert.AreEqual("Form.KeyDown", mrr.ResolvedMember.FullyQualifiedName); + + var mgrr = Resolve(program, "this.KeyDown", 4); + Assert.AreEqual("Test.KeyDown", mgrr.GetMethodIfSingleOverload().FullyQualifiedName); + } } } diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/MemberLookupHelper.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/MemberLookupHelper.cs index 23ffa7e264..88dc7db1d1 100644 --- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/MemberLookupHelper.cs +++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/MemberLookupHelper.cs @@ -135,7 +135,6 @@ namespace ICSharpCode.SharpDevelop.Dom // base most member => most derived member //Dictionary overrideDict = new Dictionary(); - bool handledNonMethod = false; HashSet handledMethods = new HashSet(new SignatureComparer()); Dictionary overrideMethodDict = new Dictionary(new SignatureComparer()); IMember nonMethodOverride = null; @@ -171,8 +170,8 @@ namespace ICSharpCode.SharpDevelop.Dom } } } else { - if (!handledNonMethod) { - handledNonMethod = true; + // non-methods are only available if they aren't hidden by something else + if (allResults.Count == 0) { results.Add(nonMethodOverride ?? m); } } diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ReflectionLayer/DomPersistence.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ReflectionLayer/DomPersistence.cs index f8ebc0631d..cefea697b9 100644 --- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ReflectionLayer/DomPersistence.cs +++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ReflectionLayer/DomPersistence.cs @@ -70,7 +70,8 @@ namespace ICSharpCode.SharpDevelop.Dom public ReflectionProjectContent LoadProjectContent(string cacheFileName) { - using (FileStream fs = new FileStream(cacheFileName, FileMode.Open, FileAccess.Read)) { + using (FileStream fs = new FileStream(cacheFileName, FileMode.Open, FileAccess.Read, + FileShare.Read | FileShare.Delete, 4096, FileOptions.SequentialScan)) { return LoadProjectContent(fs); } }