diff --git a/src/Libraries/NRefactory/Project/Src/Output/CSharp/CSharpOutputVisitor.cs b/src/Libraries/NRefactory/Project/Src/Output/CSharp/CSharpOutputVisitor.cs
index cc78dee69b..588fef5861 100644
--- a/src/Libraries/NRefactory/Project/Src/Output/CSharp/CSharpOutputVisitor.cs
+++ b/src/Libraries/NRefactory/Project/Src/Output/CSharp/CSharpOutputVisitor.cs
@@ -2034,7 +2034,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter
public object Visit(AddressOfExpression addressOfExpression, object data)
{
// C# 2.0 can reference methods directly
- return Visit(addressOfExpression.Expression, data);
+ return nodeTracker.TrackedVisit(addressOfExpression.Expression, data);
}
public object Visit(AnonymousMethodExpression anonymousMethodExpression, object data)
diff --git a/src/Libraries/NRefactory/Test/NRefactoryTests.csproj b/src/Libraries/NRefactory/Test/NRefactoryTests.csproj
index c34c3d78b1..126b94021b 100644
--- a/src/Libraries/NRefactory/Test/NRefactoryTests.csproj
+++ b/src/Libraries/NRefactory/Test/NRefactoryTests.csproj
@@ -136,7 +136,8 @@
-
+
+
diff --git a/src/Libraries/NRefactory/Test/Output/CSharp/VBToCSharpConverterTest.cs b/src/Libraries/NRefactory/Test/Output/CSharp/VBToCSharpConverterTest.cs
new file mode 100644
index 0000000000..e8937f6c7c
--- /dev/null
+++ b/src/Libraries/NRefactory/Test/Output/CSharp/VBToCSharpConverterTest.cs
@@ -0,0 +1,93 @@
+//
+//
+//
+//
+// $Revision$
+//
+
+using System;
+using System.Text;
+using System.IO;
+using NUnit.Framework;
+using ICSharpCode.NRefactory.Parser;
+using ICSharpCode.NRefactory.Parser.AST;
+using ICSharpCode.NRefactory.PrettyPrinter;
+
+namespace ICSharpCode.NRefactory.Tests.PrettyPrinter
+{
+ [TestFixture]
+ public class VBToCSharpConverterTest
+ {
+ public void TestProgram(string input, string expectedOutput)
+ {
+ IParser parser = ParserFactory.CreateParser(SupportedLanguage.VBNet, new StringReader(input));
+ parser.Parse();
+ Assert.AreEqual("", parser.Errors.ErrorOutput);
+ parser.CompilationUnit.AcceptVisitor(new VBNetToCSharpConvertVisitor(), null);
+ CSharpOutputVisitor outputVisitor = new CSharpOutputVisitor();
+ outputVisitor.Visit(parser.CompilationUnit, null);
+ Assert.AreEqual("", outputVisitor.Errors.ErrorOutput);
+ Assert.AreEqual(expectedOutput, outputVisitor.Text);
+ }
+
+ public void TestMember(string input, string expectedOutput)
+ {
+ StringBuilder b = new StringBuilder();
+ b.AppendLine("class tmp1");
+ b.AppendLine("{");
+ using (StringReader r = new StringReader(expectedOutput)) {
+ string line;
+ while ((line = r.ReadLine()) != null) {
+ b.Append("\t");
+ b.AppendLine(line);
+ }
+ }
+ b.AppendLine("}");
+ TestProgram("Class tmp1 \n" + input + "\nEnd Class", b.ToString());
+ }
+
+ public void TestStatement(string input, string expectedOutput)
+ {
+ StringBuilder b = new StringBuilder();
+ b.AppendLine("class tmp1");
+ b.AppendLine("{");
+ b.AppendLine("\tvoid tmp2()");
+ b.AppendLine("\t{");
+ using (StringReader r = new StringReader(expectedOutput)) {
+ string line;
+ while ((line = r.ReadLine()) != null) {
+ b.Append("\t\t");
+ b.AppendLine(line);
+ }
+ }
+ b.AppendLine("\t}");
+ b.AppendLine("}");
+ TestProgram("Class tmp1 \n Sub tmp2() \n" + input + "\n End Sub \n End Class", b.ToString());
+ }
+
+ [Test]
+ public void AddHandler()
+ {
+ TestStatement("AddHandler someEvent, AddressOf tmp2",
+ "someEvent += tmp2;");
+ TestStatement("AddHandler someEvent, AddressOf Me.tmp2",
+ "someEvent += this.tmp2;");
+ }
+
+ [Test]
+ public void RemoveHandler()
+ {
+ TestStatement("RemoveHandler someEvent, AddressOf tmp2",
+ "someEvent -= tmp2;");
+ TestStatement("RemoveHandler someEvent, AddressOf Me.tmp2",
+ "someEvent -= this.tmp2;");
+ }
+
+ [Test]
+ public void RaiseEvent()
+ {
+ TestStatement("RaiseEvent someEvent(Me, EventArgs.Empty)",
+ "if (someEvent != null) {\n\tsomeEvent(this, EventArgs.Empty);\n}");
+ }
+ }
+}
diff --git a/src/Libraries/NRefactory/Test/Output/VBNet/ConverterTest.cs b/src/Libraries/NRefactory/Test/Output/VBNet/CSharpToVBConverterTest.cs
similarity index 100%
rename from src/Libraries/NRefactory/Test/Output/VBNet/ConverterTest.cs
rename to src/Libraries/NRefactory/Test/Output/VBNet/CSharpToVBConverterTest.cs