diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Test/BooBinding.Tests.csproj b/src/AddIns/BackendBindings/Boo/BooBinding/Test/BooBinding.Tests.csproj
index 69233d6392..4c75b4b706 100644
--- a/src/AddIns/BackendBindings/Boo/BooBinding/Test/BooBinding.Tests.csproj
+++ b/src/AddIns/BackendBindings/Boo/BooBinding/Test/BooBinding.Tests.csproj
@@ -72,6 +72,10 @@
ICSharpCode.SharpDevelop.dll
Always
+
+ {924EE450-603D-49C1-A8E5-4AFAA31CE6F3}
+ ICSharpCode.SharpDevelop.Dom
+
\ No newline at end of file
diff --git a/src/AddIns/BackendBindings/Boo/BooBinding/Test/ResolverTests.cs b/src/AddIns/BackendBindings/Boo/BooBinding/Test/ResolverTests.cs
index be6006088c..c3a91cb008 100644
--- a/src/AddIns/BackendBindings/Boo/BooBinding/Test/ResolverTests.cs
+++ b/src/AddIns/BackendBindings/Boo/BooBinding/Test/ResolverTests.cs
@@ -52,9 +52,9 @@ namespace Grunwald.BooBinding.Tests
{
DefaultProjectContent pc = new DefaultProjectContent();
lastPC = pc;
- ParserService.ForceProjectContent(pc);
+ ProjectContentRegistry.CurrentProjectContent = pc;
pc.ReferencedContents.Add(ProjectContentRegistry.Mscorlib);
- pc.ReferencedContents.Add(ProjectContentRegistry.GetProjectContentForReference(new ReferenceProjectItem(null, "System.Windows.Forms")));
+ pc.ReferencedContents.Add(ProjectContentRegistry.GetProjectContentForReference("System.Windows.Forms", "System.Windows.Forms"));
pc.ReferencedContents.Add(booLangPC);
ICompilationUnit cu = new BooParser().Parse(pc, fileName, prog);
ParserService.UpdateParseInformation(cu, fileName, false, false);
diff --git a/src/AddIns/BackendBindings/CSharpBinding/Test/CSharpBinding.Tests.csproj b/src/AddIns/BackendBindings/CSharpBinding/Test/CSharpBinding.Tests.csproj
index d5c2f30728..b23231b595 100644
--- a/src/AddIns/BackendBindings/CSharpBinding/Test/CSharpBinding.Tests.csproj
+++ b/src/AddIns/BackendBindings/CSharpBinding/Test/CSharpBinding.Tests.csproj
@@ -51,6 +51,10 @@
ICSharpCode.SharpDevelop
True
+
+ {924EE450-603D-49C1-A8E5-4AFAA31CE6F3}
+ ICSharpCode.SharpDevelop.Dom
+
\ No newline at end of file
diff --git a/src/AddIns/BackendBindings/VBNetBinding/Test/VBNetBinding.Tests.csproj b/src/AddIns/BackendBindings/VBNetBinding/Test/VBNetBinding.Tests.csproj
index 87413ce48d..bd3ce1433b 100644
--- a/src/AddIns/BackendBindings/VBNetBinding/Test/VBNetBinding.Tests.csproj
+++ b/src/AddIns/BackendBindings/VBNetBinding/Test/VBNetBinding.Tests.csproj
@@ -52,6 +52,10 @@
{2748AD25-9C63-4E12-877B-4DCE96FBED54}
ICSharpCode.SharpDevelop
+
+ {924EE450-603D-49C1-A8E5-4AFAA31CE6F3}
+ ICSharpCode.SharpDevelop.Dom
+
\ No newline at end of file
diff --git a/src/AddIns/BackendBindings/WixBinding/Test/WixBinding.Tests.csproj b/src/AddIns/BackendBindings/WixBinding/Test/WixBinding.Tests.csproj
index f614de88eb..848c2ac020 100644
--- a/src/AddIns/BackendBindings/WixBinding/Test/WixBinding.Tests.csproj
+++ b/src/AddIns/BackendBindings/WixBinding/Test/WixBinding.Tests.csproj
@@ -182,6 +182,10 @@
NRefactory
+
+ {924EE450-603D-49C1-A8E5-4AFAA31CE6F3}
+ ICSharpCode.SharpDevelop.Dom
+
\ No newline at end of file
diff --git a/src/AddIns/Misc/CodeCoverage/Test/CodeCoverage.Tests.csproj b/src/AddIns/Misc/CodeCoverage/Test/CodeCoverage.Tests.csproj
index dcb29092c2..63124142fa 100644
--- a/src/AddIns/Misc/CodeCoverage/Test/CodeCoverage.Tests.csproj
+++ b/src/AddIns/Misc/CodeCoverage/Test/CodeCoverage.Tests.csproj
@@ -100,6 +100,10 @@
UnitTesting.dll
Always
+
+ {924EE450-603D-49C1-A8E5-4AFAA31CE6F3}
+ ICSharpCode.SharpDevelop.Dom
+
\ No newline at end of file
diff --git a/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj b/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj
index 1de7300d16..fd24d710a3 100644
--- a/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj
+++ b/src/Main/Base/Test/ICSharpCode.SharpDevelop.Tests.csproj
@@ -124,6 +124,10 @@
+
+ {924EE450-603D-49C1-A8E5-4AFAA31CE6F3}
+ ICSharpCode.SharpDevelop.Dom
+
\ No newline at end of file
diff --git a/src/Main/Base/Test/MemberLookupHelperTests.cs b/src/Main/Base/Test/MemberLookupHelperTests.cs
index 284e3451b6..2f0af2aaa3 100644
--- a/src/Main/Base/Test/MemberLookupHelperTests.cs
+++ b/src/Main/Base/Test/MemberLookupHelperTests.cs
@@ -17,7 +17,7 @@ namespace ICSharpCode.SharpDevelop.Tests
public class MemberLookupHelperTests
{
IProjectContent msc = ProjectContentRegistry.Mscorlib;
- IProjectContent swf = ProjectContentRegistry.GetProjectContentForReference(new ReferenceProjectItem(null, "System.Windows.Forms"));
+ IProjectContent swf = ProjectContentRegistry.GetProjectContentForReference("System.Windows.Forms", "System.Windows.Forms");
public IReturnType DictionaryRT {
get {
diff --git a/src/Main/Base/Test/NRefactoryResolverTests.cs b/src/Main/Base/Test/NRefactoryResolverTests.cs
index 4363461a48..1997696a29 100644
--- a/src/Main/Base/Test/NRefactoryResolverTests.cs
+++ b/src/Main/Base/Test/NRefactoryResolverTests.cs
@@ -28,8 +28,8 @@ namespace ICSharpCode.SharpDevelop.Tests
p.Parse();
DefaultProjectContent pc = new DefaultProjectContent();
pc.ReferencedContents.Add(ProjectContentRegistry.Mscorlib);
- pc.ReferencedContents.Add(ProjectContentRegistry.GetProjectContentForReference(new ReferenceProjectItem(null, "System.Windows.Forms")));
- ParserService.ForceProjectContent(pc);
+ pc.ReferencedContents.Add(ProjectContentRegistry.GetProjectContentForReference("System.Windows.Forms", "System.Windows.Forms"));
+ ProjectContentRegistry.CurrentProjectContent = pc;
lastPC = pc;
NRefactoryASTConvertVisitor visitor = new NRefactoryASTConvertVisitor(pc);
visitor.VisitCompilationUnit(p.CompilationUnit, null);
@@ -50,9 +50,9 @@ namespace ICSharpCode.SharpDevelop.Tests
p.ParseMethodBodies = false;
p.Parse();
DefaultProjectContent pc = new DefaultProjectContent();
- ParserService.ForceProjectContent(pc);
+ ProjectContentRegistry.CurrentProjectContent = pc;
pc.ReferencedContents.Add(ProjectContentRegistry.Mscorlib);
- pc.ReferencedContents.Add(ProjectContentRegistry.GetProjectContentForReference(new ReferenceProjectItem(null, "System.Windows.Forms")));
+ pc.ReferencedContents.Add(ProjectContentRegistry.GetProjectContentForReference("System.Windows.Forms", "System.Windows.Forms"));
pc.Language = LanguageProperties.VBNet;
lastPC = pc;
NRefactoryASTConvertVisitor visitor = new NRefactoryASTConvertVisitor(pc);
@@ -68,6 +68,7 @@ namespace ICSharpCode.SharpDevelop.Tests
void AddCompilationUnit(ICompilationUnit parserOutput, string fileName)
{
+ HostCallback.GetParseInformation = ParserService.GetParseInformation;
ParserService.UpdateParseInformation(parserOutput, fileName, false, false);
}
@@ -75,7 +76,7 @@ namespace ICSharpCode.SharpDevelop.Tests
{
AddCompilationUnit(Parse("a.cs", program), "a.cs");
- NRefactoryResolver resolver = new NRefactoryResolver(ICSharpCode.NRefactory.SupportedLanguage.CSharp);
+ NRefactoryResolver resolver = new NRefactoryResolver(lastPC);
return resolver.Resolve(new ExpressionResult(expression),
line, 0,
"a.cs",
@@ -86,7 +87,7 @@ namespace ICSharpCode.SharpDevelop.Tests
{
AddCompilationUnit(ParseVB("a.vb", program), "a.vb");
- NRefactoryResolver resolver = new NRefactoryResolver(ICSharpCode.NRefactory.SupportedLanguage.VBNet);
+ NRefactoryResolver resolver = new NRefactoryResolver(lastPC);
return resolver.Resolve(new ExpressionResult(expression),
line, 0,
"a.vb",
@@ -644,7 +645,7 @@ namespace Root.Child {
";
AddCompilationUnit(Parse("a.cs", program), "a.cs");
- NRefactoryResolver resolver = new NRefactoryResolver(ICSharpCode.NRefactory.SupportedLanguage.CSharp);
+ NRefactoryResolver resolver = new NRefactoryResolver(lastPC);
ArrayList m = resolver.CtrlSpace(7, 0, "a.cs", program, ExpressionContext.Default);
Assert.IsTrue(TypeExists(m, "Beta"), "Meta must exist");
Assert.IsTrue(TypeExists(m, "Alpha"), "Alpha must exist");
diff --git a/src/Main/Base/Test/ReflectionLayerTests.cs b/src/Main/Base/Test/ReflectionLayerTests.cs
index ad852f50dd..b539f5419e 100644
--- a/src/Main/Base/Test/ReflectionLayerTests.cs
+++ b/src/Main/Base/Test/ReflectionLayerTests.cs
@@ -121,12 +121,10 @@ namespace ICSharpCode.SharpDevelop.Tests
CheckClass(c);
MemoryStream memory = new MemoryStream();
- DomPersistence.ReadWriteHelper helper = new DomPersistence.ReadWriteHelper(new BinaryWriter(memory));
- helper.WriteProjectContent((ReflectionProjectContent)cu.ProjectContent);
+ DomPersistence.WriteProjectContent((ReflectionProjectContent)cu.ProjectContent, memory);
memory.Position = 0;
- helper = new DomPersistence.ReadWriteHelper(new BinaryReader(memory));
- foreach (IClass c2 in helper.ReadProjectContent().Classes) {
+ foreach (IClass c2 in DomPersistence.LoadProjectContent(memory).Classes) {
CheckClass(c2);
}
}
diff --git a/src/Main/Base/Test/WebReferences/UnsupportedLanguageTest.cs b/src/Main/Base/Test/WebReferences/UnsupportedLanguageTest.cs
index 90a8926296..98acdcf7a0 100644
--- a/src/Main/Base/Test/WebReferences/UnsupportedLanguageTest.cs
+++ b/src/Main/Base/Test/WebReferences/UnsupportedLanguageTest.cs
@@ -34,7 +34,7 @@ namespace ICSharpCode.SharpDevelop.Tests.WebReferences
string updateFromUrl = "http://localhost/test.asmx";
[Test]
- [ExpectedException(typeof(NotImplementedException))]
+ [ExpectedException(typeof(NotSupportedException))]
public void NotSupportedProjectLanguage()
{
project = new MSBuildProject();
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 f42f96a662..eabd9eee70 100644
--- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ReflectionLayer/DomPersistence.cs
+++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ReflectionLayer/DomPersistence.cs
@@ -48,9 +48,7 @@ namespace ICSharpCode.SharpDevelop.Dom
+ ".dat");
AddFileNameToCacheIndex(Path.GetFileName(fileName), pc);
using (FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write)) {
- using (BinaryWriter writer = new BinaryWriter(fs)) {
- new ReadWriteHelper(writer).WriteProjectContent(pc);
- }
+ WriteProjectContent(pc, fs);
}
return fileName;
}
@@ -69,21 +67,9 @@ namespace ICSharpCode.SharpDevelop.Dom
public static ReflectionProjectContent LoadProjectContent(string cacheFileName)
{
- ReflectionProjectContent pc;
using (FileStream fs = new FileStream(cacheFileName, FileMode.Open, FileAccess.Read)) {
- using (BinaryReader reader = new BinaryReader(fs)) {
- try {
- pc = new ReadWriteHelper(reader).ReadProjectContent();
- } catch (EndOfStreamException) {
- LoggingService.Warn("Read dom: EndOfStreamException");
- return null;
- }
- }
- }
- if (pc != null) {
- pc.InitializeSpecialClasses();
+ return LoadProjectContent(fs);
}
- return pc;
}
#endregion
@@ -166,6 +152,38 @@ namespace ICSharpCode.SharpDevelop.Dom
}
#endregion
+ #region Saving / Loading without cache
+ ///
+ /// Saves the project content to the stream.
+ ///
+ public static void WriteProjectContent(ReflectionProjectContent pc, Stream stream)
+ {
+ BinaryWriter writer = new BinaryWriter(stream);
+ new ReadWriteHelper(writer).WriteProjectContent(pc);
+ // do not close the stream
+ }
+
+ ///
+ /// Load a project content from a stream.
+ ///
+ public static ReflectionProjectContent LoadProjectContent(Stream stream)
+ {
+ ReflectionProjectContent pc;
+ BinaryReader reader = new BinaryReader(stream);
+ try {
+ pc = new ReadWriteHelper(reader).ReadProjectContent();
+ if (pc != null) {
+ pc.InitializeSpecialClasses();
+ }
+ return pc;
+ } catch (EndOfStreamException) {
+ LoggingService.Warn("Read dom: EndOfStreamException");
+ return null;
+ }
+ // do not close the stream
+ }
+ #endregion
+
private struct ClassNameTypeCountPair
{
public readonly string ClassName;
diff --git a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ReflectionLayer/ReflectionClass.cs b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ReflectionLayer/ReflectionClass.cs
index 94f4e2c763..9ed4b9a7f7 100644
--- a/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ReflectionLayer/ReflectionClass.cs
+++ b/src/Main/ICSharpCode.SharpDevelop.Dom/Project/Src/ReflectionLayer/ReflectionClass.cs
@@ -12,7 +12,7 @@ using System.Collections.Generic;
namespace ICSharpCode.SharpDevelop.Dom.ReflectionLayer
{
- internal class ReflectionClass : DefaultClass
+ public class ReflectionClass : DefaultClass
{
const BindingFlags flags = BindingFlags.Instance |
BindingFlags.Static |
diff --git a/src/SharpDevelop.Tests.sln b/src/SharpDevelop.Tests.sln
index 504be4f655..805b820d9f 100644
--- a/src/SharpDevelop.Tests.sln
+++ b/src/SharpDevelop.Tests.sln
@@ -1,5 +1,5 @@
Microsoft Visual Studio Solution File, Format Version 9.00
-# SharpDevelop 2.0.0.1590
+# SharpDevelop 2.1.0.1663
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "AddIns", "AddIns", "{14A277EE-7DF1-4529-B639-7D1EF334C1C5}"
ProjectSection(SolutionItems) = postProject
EndProjectSection
@@ -76,6 +76,8 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Main", "Main", "{5A3EBEBA-0
ProjectSection(SolutionItems) = postProject
EndProjectSection
EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Dom", "Main\ICSharpCode.SharpDevelop.Dom\Project\ICSharpCode.SharpDevelop.Dom.csproj", "{924EE450-603D-49C1-A8E5-4AFAA31CE6F3}"
+EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.SharpDevelop.Sda", "Main\ICSharpCode.SharpDevelop.Sda\ICSharpCode.SharpDevelop.Sda.csproj", "{80318B5F-A25D-45AB-8A95-EF31D2370A4C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ICSharpCode.Core.Tests", "Main\Core\Test\ICSharpCode.Core.Tests.csproj", "{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5}"
@@ -252,6 +254,10 @@ Global
{80318B5F-A25D-45AB-8A95-EF31D2370A4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{80318B5F-A25D-45AB-8A95-EF31D2370A4C}.Release|Any CPU.Build.0 = Release|Any CPU
{80318B5F-A25D-45AB-8A95-EF31D2370A4C}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|Any CPU.Build.0 = Release|Any CPU
+ {924EE450-603D-49C1-A8E5-4AFAA31CE6F3}.Release|Any CPU.ActiveCfg = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -294,5 +300,6 @@ Global
{4980B743-B32F-4aba-AABD-45E2CAD3568D} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{AD6FAA08-D6F5-4DBA-AF85-F4DA9F40C3B5} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
{80318B5F-A25D-45AB-8A95-EF31D2370A4C} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
+ {924EE450-603D-49C1-A8E5-4AFAA31CE6F3} = {5A3EBEBA-0560-41C1-966B-23F7D03A5486}
EndGlobalSection
EndGlobal