Browse Source

fixed SD2-970 - Namespace end construct missplaced if there is a 'using' statements inside a region when converting code from C# to VB.

git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/branches/vbnet@6174 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61
pull/1/head
Siegfried Pammer 16 years ago
parent
commit
c38aeb3fa5
  1. 1
      src/Libraries/NRefactory/Project/Src/Visitors/ToVBNetConvertVisitor.cs
  2. 32
      src/Libraries/NRefactory/Test/Output/VBNet/CSharpToVBNetConverterTest.cs

1
src/Libraries/NRefactory/Project/Src/Visitors/ToVBNetConvertVisitor.cs

@ -49,6 +49,7 @@ namespace ICSharpCode.NRefactory.Visitors @@ -49,6 +49,7 @@ namespace ICSharpCode.NRefactory.Visitors
base.VisitUsingDeclaration(usingDeclaration, data);
if (usingDeclaration.Parent is NamespaceDeclaration) {
nodesToMoveToCompilationUnit.Add(usingDeclaration);
usingDeclaration.StartLocation = usingDeclaration.EndLocation = Location.Empty;
RemoveCurrentNode();
}
return null;

32
src/Libraries/NRefactory/Test/Output/VBNet/CSharpToVBNetConverterTest.cs

@ -24,13 +24,17 @@ namespace ICSharpCode.NRefactory.Tests.PrettyPrinter @@ -24,13 +24,17 @@ namespace ICSharpCode.NRefactory.Tests.PrettyPrinter
IParser parser = ParserFactory.CreateParser(SupportedLanguage.CSharp, new StringReader(input));
parser.Parse();
Assert.AreEqual("", parser.Errors.ErrorOutput);
var specials = parser.Lexer.SpecialTracker.RetrieveSpecials();
PreprocessingDirective.CSharpToVB(specials);
parser.CompilationUnit.AcceptVisitor(new CSharpConstructsConvertVisitor(), null);
parser.CompilationUnit.AcceptVisitor(new ToVBNetConvertVisitor(), null);
VBNetOutputVisitor outputVisitor = new VBNetOutputVisitor();
outputVisitor.Options.IndentationChar = ' ';
outputVisitor.Options.IndentSize = 2;
outputVisitor.Options.OutputByValModifier = true;
outputVisitor.VisitCompilationUnit(parser.CompilationUnit, null);
using (SpecialNodesInserter.Install(specials, outputVisitor)) {
outputVisitor.VisitCompilationUnit(parser.CompilationUnit, null);
}
Assert.AreEqual("", outputVisitor.Errors.ErrorOutput);
Assert.AreEqual(expectedOutput, outputVisitor.Text);
}
@ -625,5 +629,31 @@ Private m_Name As String"); @@ -625,5 +629,31 @@ Private m_Name As String");
" } _\n" +
"}");
}
[Test]
public void SD2_970()
{
TestProgram(
@"namespace MyNamespace
{
#region ""Test""
using System;
public partial class MainForm
{
object x;
}
#endregion
}",
@"Imports System
Namespace MyNamespace
#Region ""Test""
Public Partial Class MainForm
Private x As Object
End Class
#End Region
End Namespace
"
);
}
}
}

Loading…
Cancel
Save