Custom swift operators with weird characters in .NET compile to the same method name

IDE: Water
Version: Elements Version 11.0.0.2657 (develop) built on talax, 20210806-145551. Commit 7bbcc2d.
Target (If relevant): .NET
Description: When using obscure unicode characters which are allowed for custom operators in the swift language, such as and , they are compiled to the same name and cause a conflict

Example code:

infix operator ⨳
infix operator ⨲

func ⨳(a: Int, b: Int) -> Int {
    4
}

func ⨲(a: Int, b: Int) -> Int {
    4
}

Expected Behavior: These methods have different names in swift, so i’d expect them to compile to different IL method names that can be unambiguously referenced.

Actual Behavior: The compiler gives me an error for “Duplicate method” because both will compile to just op_.

Special cases that already exist in .NET like ==op_Equality are handled properly, and using less obscure characters also works (i.e. =-+!*%<>&|^~op_EqMinPlusLNotMulModLtGtAndOrXorNot).

Also, isn’t custom operator information like precedence groups lost in compilation (and inaccessible if you reference an assembly)?

Logged as bugs://E25290.

That does sound like a bug, yeah.

bugs://E25290 was closed as fixed.