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

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

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

Loading…
Cancel
Save