Browse Source

Fixed forum-14696: Code completion exception for Boo

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.1@2304 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
12e0510669
  1. 2
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ConvertVisitor.cs
  2. 16
      src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ResolveVisitor.cs

2
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; rt = new BooResolver.DuckClass(new DefaultCompilationUnit(projectContent)).DefaultReturnType;
else if (BooAmbience.ReverseTypeConversionTable.ContainsKey(name)) else if (BooAmbience.ReverseTypeConversionTable.ContainsKey(name))
rt = new GetClassReturnType(projectContent, BooAmbience.ReverseTypeConversionTable[name], typeParameterCount); rt = new GetClassReturnType(projectContent, BooAmbience.ReverseTypeConversionTable[name], typeParameterCount);
else if (callingClass == null)
rt = new GetClassReturnType(projectContent, name, typeParameterCount);
else else
rt = new SearchClassReturnType(projectContent, callingClass, caretLine, caretColumn, rt = new SearchClassReturnType(projectContent, callingClass, caretLine, caretColumn,
name, typeParameterCount); name, typeParameterCount);

16
src/AddIns/BackendBindings/Boo/BooBinding/Project/Src/CodeCompletion/ResolveVisitor.cs

@ -73,12 +73,18 @@ namespace Grunwald.BooBinding.CodeCompletion
void MakeTypeResult(IClass c) 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) 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) 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, IReturnType rt = projectContent.SearchType(new SearchTypeRequest(name.ToString(), typeArguments.Count, callingClass,
cu, resolver.CaretLine, resolver.CaretColumn)).Result; cu, resolver.CaretLine, resolver.CaretColumn)).Result;
return new ConstructedReturnType(rt, typeArguments); if (rt != null) {
return new ConstructedReturnType(rt, typeArguments);
} else {
return null;
}
} }
#endregion #endregion

Loading…
Cancel
Save