Description
This seems to be a known issue because there are several comments in FSharpMemberOrFunctionOrValue
like this one:
fsharp/src/Compiler/Symbols/Symbols.fs
Lines 2047 to 2062 in 236db98
Not sure if this something that is not possible/easy to implement or it's been a TODO that has remained in the code base. Interestingly when members are internally represented as function values (.Data = V ...
) the attributes for params can be accessed:
fsharp/src/Compiler/Symbols/Symbols.fs
Lines 2064 to 2080 in 236db98
This seems to be the reason this issue hasn't surfaced in Fable until now. In Fable we sometimes use param attributes to give info about how a parameter should be compiled in the call-site. Until Fable 3 this information was directly taken from the member reference in FSharpExprPatterns.Call
. It seems in this case the member is always represented as function value and the param attributes are kept. However, in Fable 4 we are using a different model where entity and member info are kept separated from the AST to make serialization easier. Because of this, the parameter info is accessed now through FSharpEntity.MembersFunctionsAndValues
and apparently this causes members to be represented as methods (.Data = M ...
) and the param attributes to be lost when calling CurriedParameterGroups
.
@dsyme Would it be possible to fix this in FCS or is it a limitation we need to overcome somehow?
Metadata
Metadata
Assignees
Type
Projects
Status