diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ConvertVisitor.cs b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ConvertVisitor.cs index a7d1083555..a2f5089458 100644 --- a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ConvertVisitor.cs +++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ConvertVisitor.cs @@ -244,6 +244,8 @@ namespace Grunwald.BooBinding.CodeCompletion rt = new BooResolver.DuckClass(new DefaultCompilationUnit(projectContent)).DefaultReturnType; else if (BooAmbience.ReverseTypeConversionTable.ContainsKey(name)) rt = new GetClassReturnType(projectContent, BooAmbience.ReverseTypeConversionTable[name], typeParameterCount); + else if (callingClass == null) + rt = new GetClassReturnType(projectContent, name, typeParameterCount); else rt = new SearchClassReturnType(projectContent, callingClass, caretLine, caretColumn, name, typeParameterCount); diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ResolveVisitor.cs b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ResolveVisitor.cs index 46a9ca990f..3188da0d85 100644 --- a/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ResolveVisitor.cs +++ b/src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ResolveVisitor.cs @@ -73,12 +73,18 @@ namespace Grunwald.BooBinding.CodeCompletion void MakeTypeResult(IClass c) { - resolveResult = new TypeResolveResult(callingClass, resolver.CallingMember, c); + if (c != null) + resolveResult = new TypeResolveResult(callingClass, resolver.CallingMember, c); + else + ClearResult(); } void MakeTypeResult(IReturnType rt) { - resolveResult = new TypeResolveResult(callingClass, resolver.CallingMember, rt); + if (rt != null) + resolveResult = new TypeResolveResult(callingClass, resolver.CallingMember, rt); + else + ClearResult(); } void MakeMethodResult(IReturnType type, string methodName) @@ -262,7 +268,11 @@ namespace Grunwald.BooBinding.CodeCompletion } IReturnType rt = projectContent.SearchType(new SearchTypeRequest(name.ToString(), typeArguments.Count, callingClass, cu, resolver.CaretLine, resolver.CaretColumn)).Result; - return new ConstructedReturnType(rt, typeArguments); + if (rt != null) { + return new ConstructedReturnType(rt, typeArguments); + } else { + return null; + } } #endregion