icsharpcode / CodeConverter

Convert code from C# to VB.NET and vice versa using Roslyn
https://icsharpcode.github.io/CodeConverter/
MIT License
826 stars 216 forks source link

VB -> C#: named optional parameter that's a C# keyword isn't always escaped #1092

Closed TymurGubayev closed 5 months ago

TymurGubayev commented 5 months ago

VB.Net input code

    Sub S1(Optional a As Object = Nothing, Optional [default] As String = "")
    End Sub

    Sub S()
        S1(, "a")
    End Sub

Erroneous output

        public void S1(object a = null, string @default = "")
        {
        }

        public void S()
        {
            this.S1(default: "a");
        }

Expected output

        public void S1(object a = null, string @default = "")
        {
        }

        public void S()
        {
            this.S1(@default: "a");
        }

Details