fsharp icon indicating copy to clipboard operation
fsharp copied to clipboard

CLIEvent events are considered properties in XmlDoc Ids and Symbol API

Open auduchinok opened this issue 5 years ago • 0 comments

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.

auduchinok avatar Oct 19 '20 12:10 auduchinok