diff --git a/src/Libraries/NRefactory/Project/Src/Output/CSharp/CSharpOutputVisitor.cs b/src/Libraries/NRefactory/Project/Src/Output/CSharp/CSharpOutputVisitor.cs index 79575adde4..be270ca8b8 100644 --- a/src/Libraries/NRefactory/Project/Src/Output/CSharp/CSharpOutputVisitor.cs +++ b/src/Libraries/NRefactory/Project/Src/Output/CSharp/CSharpOutputVisitor.cs @@ -1693,6 +1693,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter nodeTracker.TrackedVisit(binaryOperatorExpression.Left, data); switch (binaryOperatorExpression.Op) { case BinaryOperatorType.Add: + case BinaryOperatorType.Concat: // translate Concatenation to + if (prettyPrintOptions.AroundAdditiveOperatorParentheses) { outputFormatter.Space(); } diff --git a/src/Libraries/NRefactory/Project/Src/Output/VBNet/VBNetOutputVisitor.cs b/src/Libraries/NRefactory/Project/Src/Output/VBNet/VBNetOutputVisitor.cs index d037684679..ee05bef1fc 100644 --- a/src/Libraries/NRefactory/Project/Src/Output/VBNet/VBNetOutputVisitor.cs +++ b/src/Libraries/NRefactory/Project/Src/Output/VBNet/VBNetOutputVisitor.cs @@ -908,7 +908,7 @@ namespace ICSharpCode.NRefactory.PrettyPrinter outputFormatter.PrintToken(Tokens.Property); outputFormatter.Space(); - outputFormatter.PrintIdentifier("ConvertedIndexer"); + outputFormatter.PrintIdentifier("Item"); outputFormatter.PrintToken(Tokens.OpenParenthesis); AppendCommaSeparatedList(indexerDeclaration.Parameters); @@ -931,7 +931,6 @@ namespace ICSharpCode.NRefactory.PrettyPrinter outputFormatter.PrintToken(Tokens.End); outputFormatter.Space(); outputFormatter.PrintToken(Tokens.Property); - outputFormatter.Space(); outputFormatter.NewLine(); return null; } diff --git a/src/Libraries/NRefactory/Test/Output/CSharp/VBToCSharpConverterTest.cs b/src/Libraries/NRefactory/Test/Output/CSharp/VBToCSharpConverterTest.cs index d910543fb1..b4c6dc9a30 100644 --- a/src/Libraries/NRefactory/Test/Output/CSharp/VBToCSharpConverterTest.cs +++ b/src/Libraries/NRefactory/Test/Output/CSharp/VBToCSharpConverterTest.cs @@ -224,6 +224,13 @@ namespace ICSharpCode.NRefactory.Tests.PrettyPrinter "Equals(a, b);"); } + [Test] + public void Concatenation() + { + TestStatement("x = \"Hello \" & \"World\"", + "x = \"Hello \" + \"World\";"); + } + [Test] public void VBConstants() { diff --git a/src/Libraries/NRefactory/Test/Output/VBNet/CSharpToVBConverterTest.cs b/src/Libraries/NRefactory/Test/Output/VBNet/CSharpToVBConverterTest.cs index 892065d31f..1cacf6dc89 100644 --- a/src/Libraries/NRefactory/Test/Output/VBNet/CSharpToVBConverterTest.cs +++ b/src/Libraries/NRefactory/Test/Output/VBNet/CSharpToVBConverterTest.cs @@ -238,6 +238,17 @@ namespace ICSharpCode.NRefactory.Tests.PrettyPrinter "End Sub"); } + [Test] + public void Indexer() + { + TestMember("public CategoryInfo this[int index] { get { return List[index] as CategoryInfo; } }", + "Public Default ReadOnly Property Item(ByVal index As Integer) As CategoryInfo\n" + + "\tGet\n" + + "\t\tReturn TryCast(List(index), CategoryInfo)\n" + + "\tEnd Get\n" + + "End Property"); + } + [Test] public void RenameConflictingNames() {