- Warn (FS3884) when a function or delegate value is used as an interpolated string argument, since it will be formatted via
ToStringrather than being applied. (PR #19289) - Added
MethodOverloadsCachelanguage feature (preview) that caches overload resolution results for repeated method calls, significantly improving compilation performance. (PR #19072) - Added
ErrorOnMissingSignatureAttributepreview language feature: makes FS3888 (compiler-semantic attribute on the.fsbut not on the.fsi) an error instead of a warning. (Issue #19560, PR #19880) - Support common types of
NotNullIfNotNullAttributeusage. If a method parameter is marked withNotNullIfNotNullAttribute, the compiler will now honor this attribute and mark the return type as non-null. (PR #19977) - Added
AccessProtectedBaseFieldFromClosurepreview language feature: a derived member can now read aprotectedbase-class field from an ordinary closure (lambda, delegate,async/seq/lazy,function, or list/array literal), which previously failed with FS1097 even though direct access compiles. Object expressions remain unsupported — bind the field to a local function or expose it through a member. (Issue #5302) - Added
ImprovedImpliedArgumentNamesPartTwolanguage feature: when a function with no recoverable parameter names is coerced to a delegate (e.g. a partial application likeSystem.Func<int, int>((+) 1)), the synthesizedInvokeparameters take their names from the delegate's ownInvokesignature instead of syntheticdelegateArg0,delegateArg1, … names. (PR #20001)