diff --git a/CHANGELOG.md b/CHANGELOG.md index 5f377778..726c44af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) ### VB -> C# +* Xor operator overloads now converted [#1182](htts://github.com/icsharpcode/CodeConverter/issues/1182) ### C# -> VB diff --git a/CodeConverter/CSharp/SyntaxKindExtensions.cs b/CodeConverter/CSharp/SyntaxKindExtensions.cs index 5e54eeef..79de5fdc 100644 --- a/CodeConverter/CSharp/SyntaxKindExtensions.cs +++ b/CodeConverter/CSharp/SyntaxKindExtensions.cs @@ -243,6 +243,8 @@ public static SyntaxKind ConvertToken(this Microsoft.CodeAnalysis.VisualBasic.Sy return SyntaxKind.AmpersandToken; case Microsoft.CodeAnalysis.VisualBasic.SyntaxKind.OrKeyword: return SyntaxKind.BarToken; + case Microsoft.CodeAnalysis.VisualBasic.SyntaxKind.XorKeyword: + return SyntaxKind.CaretToken; // case Microsoft.CodeAnalysis.VisualBasic.SyntaxKind.AssemblyKeyword: return SyntaxKind.AssemblyKeyword; diff --git a/Tests/CSharp/MemberTests/OperatorMemberTests.cs b/Tests/CSharp/MemberTests/OperatorMemberTests.cs index a3c59a47..03c4efa4 100644 --- a/Tests/CSharp/MemberTests/OperatorMemberTests.cs +++ b/Tests/CSharp/MemberTests/OperatorMemberTests.cs @@ -190,5 +190,32 @@ End Operator Assert.Contains("Public Shared Operator ^(i As Integer,", convertedCode); Assert.Contains("_failedMemberConversionMarker2", convertedCode); Assert.Contains("Public Shared Operator Like(s As String,", convertedCode); + } + + [Fact] + + public async Task XorOperatorOverloadConversionAsync() + + { + + await TestConversionVisualBasicToCSharpAsync( + + @" +Public Class MyType + Public Shared Operator Xor(left As MyType, right As MyType) As MyType + Throw New Global.System.NotSupportedException(""Not supported"") + End Operator +End Class", + + @"using System; + +public partial class MyType +{ + public static MyType operator ^(MyType left, MyType right) + { + throw new NotSupportedException(""Not supported""); + } +}"); + } } \ No newline at end of file