diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ExpressionFinder.cs b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ExpressionFinder.cs index 2e6605d5d4..4db9c754c4 100644 --- a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ExpressionFinder.cs +++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ExpressionFinder.cs @@ -79,7 +79,8 @@ namespace Grunwald.BooBinding.CodeCompletion public ExpressionResult FindExpression(string inText, int offset) { - if (inText == null) return new ExpressionResult(null); + if (inText == null || offset >= inText.Length) + return new ExpressionResult(null); // OK, first try a kind of "quick find" int i = offset + 1; const string forbidden = "\"\'/#)]}"; @@ -97,10 +98,6 @@ namespace Grunwald.BooBinding.CodeCompletion break; } if (char.IsWhiteSpace(c)) { - if (i > 6 && inText.Substring(i - 6, 6) == "import") { - i -= 7; // include 'import' in the expression - } - start = i + 1; break; } if (start >= 0) { diff --git a/src/Main/Base/Project/Src/Dom/Implementations/DefaultClass.cs b/src/Main/Base/Project/Src/Dom/Implementations/DefaultClass.cs index 1bedebc930..5863ef2452 100644 --- a/src/Main/Base/Project/Src/Dom/Implementations/DefaultClass.cs +++ b/src/Main/Base/Project/Src/Dom/Implementations/DefaultClass.cs @@ -330,6 +330,7 @@ namespace ICSharpCode.SharpDevelop.Dom { switch (ClassType) { case ClassType.Class: + case ClassType.Interface: if (FullyQualifiedName != "System.Object") { return ReflectionReturnType.Object; } diff --git a/src/Main/Base/Project/Src/Services/ParserService/DefaultProjectContent.cs b/src/Main/Base/Project/Src/Services/ParserService/DefaultProjectContent.cs index 3d3143095a..56a62c24d0 100644 --- a/src/Main/Base/Project/Src/Services/ParserService/DefaultProjectContent.cs +++ b/src/Main/Base/Project/Src/Services/ParserService/DefaultProjectContent.cs @@ -174,6 +174,7 @@ namespace ICSharpCode.Core /// Gets/Sets the properties of the language this project content was written in. /// public LanguageProperties Language { + [DebuggerStepThrough] get { return language; } diff --git a/src/Main/Base/Test/NRefactoryResolverTests.cs b/src/Main/Base/Test/NRefactoryResolverTests.cs index b90f58c69d..b74dfb05ab 100644 --- a/src/Main/Base/Test/NRefactoryResolverTests.cs +++ b/src/Main/Base/Test/NRefactoryResolverTests.cs @@ -259,6 +259,7 @@ interface IInterface2 { bool m1 = false; bool m2 = false; bool disp = false; + bool getType = false; foreach (IMethod m in arr) { if (m.Name == "Method1") m1 = true; @@ -266,10 +267,13 @@ interface IInterface2 { m2 = true; if (m.Name == "Dispose") disp = true; + if (m.Name == "GetType") + getType = true; } Assert.IsTrue(m1, "Method1 not found"); Assert.IsTrue(m2, "Method2 not found"); Assert.IsTrue(disp, "Dispose not found"); + Assert.IsTrue(getType, "GetType not found"); } [Test]