fsharp
fsharp copied to clipboard
CLIEvent events are considered properties in XmlDoc Ids and Symbol API
F# properties tagged with CLIEvent attribute are compiled to CLI events instead of properties, however XmlDoc id mentions such events as properties anyway:
type T() =
/// An event.
[<CLIEvent>]
member x.E = Event<int>().Publish
Generated documentation file:
<?xml version="1.0" encoding="utf-8"?>
<doc>
<assembly><name>ConsoleApp1</name></assembly>
<members>
<member name="M:Program.T.remove_E(Microsoft.FSharp.Control.FSharpHandler{System.Int32})">
<summary>
An event.
</summary>
</member>
<member name="P:Program.T.E">
<summary>
An event.
</summary>
</member>
<member name="M:Program.T.add_E(Microsoft.FSharp.Control.FSharpHandler{System.Int32})">
<summary>
An event.
</summary>
</member>
</members>
</doc>
FCS Symbol API also reports the wrong id in FSharpMemberOrFunctionOrValue.XmlDocSig, and IsEvent is also false.
Probably related: https://github.com/dotnet/fsharp/issues/5834.