Browse Source

Fix missing array type when converting VB.NET multiple variables on a single line to Ruby.

4.0
Matt Ward 14 years ago
parent
commit
dbd2bb40dd
  1. 1
      src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/NRefactoryToRubyConverter.cs
  2. 24
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Converter/LocalVariableDefinitionsOnSameLineTests.cs
  3. 6
      src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Converter/MultipleFieldsOnSameLineTests.cs

1
src/AddIns/BackendBindings/Ruby/RubyBinding/Project/Src/NRefactoryToRubyConverter.cs

@ -607,6 +607,7 @@ namespace ICSharpCode.RubyBinding
AppendIndented(variableDeclaration.Name + " = "); AppendIndented(variableDeclaration.Name + " = ");
// Generate the variable initializer. // Generate the variable initializer.
AddTypeToArrayInitializerIfMissing(variableDeclaration);
variableDeclaration.Initializer.AcceptVisitor(this, data); variableDeclaration.Initializer.AcceptVisitor(this, data);
AppendLine(); AppendLine();
} }

24
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Converter/LocalVariableDefinitionsOnSameLineTests.cs

@ -36,5 +36,29 @@ namespace RubyBinding.Tests.Converter
Assert.AreEqual(expectedRuby, Ruby); Assert.AreEqual(expectedRuby, Ruby);
} }
string vnetClassWithTwoArrayLocalVariablesOnSameLine =
"class Foo\r\n" +
" Public Sub New()\r\n" +
" Dim i(10), j(20) as integer\r\n" +
" End Sub\r\n" +
"end class";
[Test]
public void ConvertVBNetClassWithTwoArrayVariablesOnSameLine()
{
NRefactoryToRubyConverter converter = new NRefactoryToRubyConverter(SupportedLanguage.VBNet);
converter.IndentString = " ";
string ruby = converter.Convert(vnetClassWithTwoArrayLocalVariablesOnSameLine);
string expectedRuby =
"class Foo\r\n" +
" def initialize()\r\n" +
" i = Array.CreateInstance(System::Int32, 10)\r\n" +
" j = Array.CreateInstance(System::Int32, 20)\r\n" +
" end\r\n" +
"end";
Assert.AreEqual(expectedRuby, ruby);
}
} }
} }

6
src/AddIns/BackendBindings/Ruby/RubyBinding/Test/Converter/MultipleFieldsOnSameLineTests.cs

@ -100,8 +100,8 @@ namespace RubyBinding.Tests.Converter
{ {
NRefactoryToRubyConverter converter = new NRefactoryToRubyConverter(SupportedLanguage.VBNet); NRefactoryToRubyConverter converter = new NRefactoryToRubyConverter(SupportedLanguage.VBNet);
converter.IndentString = " "; converter.IndentString = " ";
string python = converter.Convert(vnetClassWithTwoArrayFieldsOnSameLine); string ruby = converter.Convert(vnetClassWithTwoArrayFieldsOnSameLine);
string expectedPython = string expectedRuby =
"class Foo\r\n" + "class Foo\r\n" +
" def initialize()\r\n" + " def initialize()\r\n" +
" @i = Array.CreateInstance(System::Int32, 10)\r\n" + " @i = Array.CreateInstance(System::Int32, 10)\r\n" +
@ -109,7 +109,7 @@ namespace RubyBinding.Tests.Converter
" end\r\n" + " end\r\n" +
"end"; "end";
Assert.AreEqual(expectedPython, python); Assert.AreEqual(expectedRuby, ruby);
} }
} }
} }

Loading…
Cancel
Save