Browse Source

Prevent NRefactoryResolver crash when mscorlib project content is not referenced correctly.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/2.1@2448 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
shortcuts
Daniel Grunwald 19 years ago
parent
commit
23ad0a61fc
  1. 12
      src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs

12
src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/NRefactoryResolver/NRefactoryResolver.cs

@ -22,7 +22,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -22,7 +22,7 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
IClass callingClass;
IMember callingMember;
ICSharpCode.NRefactory.Visitors.LookupTableVisitor lookupTableVisitor;
IProjectContent projectContent = null;
IProjectContent projectContent;
NR.SupportedLanguage language;
@ -40,6 +40,8 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -40,6 +40,8 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
return projectContent;
}
set {
if (value == null)
throw new ArgumentNullException("value");
projectContent = value;
}
}
@ -981,6 +983,8 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -981,6 +983,8 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
IClass GetPrimitiveClass(string systemType, string newName)
{
IClass c = projectContent.GetClass(systemType);
if (c == null)
return null;
DefaultClass c2 = new DefaultClass(c.CompilationUnit, newName);
c2.ClassType = c.ClassType;
c2.Modifiers = c.Modifiers;
@ -999,14 +1003,16 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver @@ -999,14 +1003,16 @@ namespace ICSharpCode.SharpDevelop.Dom.NRefactoryResolver
if (language == NR.SupportedLanguage.VBNet) {
foreach (KeyValuePair<string, string> pair in TypeReference.PrimitiveTypesVB) {
if ("System." + pair.Key != pair.Value) {
result.Add(GetPrimitiveClass(pair.Value, pair.Key));
IClass c = GetPrimitiveClass(pair.Value, pair.Key);
if (c != null) result.Add(c);
}
}
result.Add("Global");
result.Add("New");
} else {
foreach (KeyValuePair<string, string> pair in TypeReference.PrimitiveTypesCSharp) {
result.Add(GetPrimitiveClass(pair.Value, pair.Key));
IClass c = GetPrimitiveClass(pair.Value, pair.Key);
if (c != null) result.Add(c);
}
}
ParseInformation parseInfo = HostCallback.GetParseInformation(fileName);

Loading…
Cancel
Save