Browse Source

fixed SD2-1424: Variables with the same name as their containing functions but with different case are converted incorrectly from C# to VB.

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

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

@ -310,6 +310,7 @@ namespace ICSharpCode.NRefactory.Visitors @@ -310,6 +310,7 @@ namespace ICSharpCode.NRefactory.Visitors
{
if (!IsClassType(ClassType.Interface) && (propertyDeclaration.Modifier & Modifiers.Visibility) == 0)
propertyDeclaration.Modifier |= Modifiers.Private;
base.VisitPropertyDeclaration(propertyDeclaration, data);
ToVBNetRenameConflictingVariablesVisitor.RenameConflicting(propertyDeclaration);

3
src/Libraries/NRefactory/Project/Src/Visitors/ToVBNetRenameConflictingVariables.cs

@ -25,6 +25,9 @@ namespace ICSharpCode.NRefactory.Visitors @@ -25,6 +25,9 @@ namespace ICSharpCode.NRefactory.Visitors
LookupTableVisitor ltv = new LookupTableVisitor(SupportedLanguage.CSharp);
method.AcceptVisitor(ltv, null);
// add method name to caseInsensitive
AddVariableToDict(caseInsensitive, method.Name, true);
// add method parameters to caseInsensitive
foreach (ParameterDeclarationExpression pde in method.Parameters) {
AddVariableToDict(caseInsensitive, pde.ParameterName, true);

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

@ -655,5 +655,21 @@ End Namespace @@ -655,5 +655,21 @@ End Namespace
"
);
}
[Test]
public void SD2_1424()
{
TestMember(
@"public int Min()
{
int min = 5;
return min;
}",
@"Public Function Min() As Integer
Dim min__1 As Integer = 5
Return min__1
End Function"
);
}
}
}

Loading…
Cancel
Save