- Fix wrong TailCall warning (Issue #17604, PR #17637)
- Compiler hangs when compiling inline recursive invocation (Issue #17376, PR #17394)
- Fix reporting IsFromComputationExpression only for CE builder type constructors and let bindings. (PR #17375)
- Optimize simple mappings in comprehensions when the body of the mapping has
let-bindings and/or sequential expressions before a single yield. (PR #17419) - C# protected property can be assigned in F# inherit constructor call. (Issue #13299, PR #17391)
- MethodAccessException on equality comparison of a record with private fields. (Issue #17447, PR #17391)
- Fix
functionimplicit conversion. (Issue #7401, PR #17487) - Compiler fails to recognise namespace in FQN with enabled GraphBasedChecking. (Issue #17508, PR #17510)
- Fix missing message for type error (FS0001). (Issue #17373, PR #17516)
- Nullness export - make sure option<> and other UseNullAsTrueValue types are properly annotated as nullable for C# and reflection consumers PR #17528
- MethodAccessException on equality comparison of a type private to module. (Issue #17541, PR #17548)
- Fixed checking failure when
globalnamespace is involved with enabled GraphBasedChecking (PR #17553) - Add missing byte chars notations, enforce limits in decimal notation in byte char & string (Issues #15867, #15868, #15869, PR #15898)
- Parentheses analysis: keep extra parentheses around unit & tuples in method definitions. (PR #17618)
- Fix IsUnionCaseTester throwing for non-methods/properties #17301
- Fix xmlc doc tooltip display for nullable types #17741
- Consider
open typeused when the type is an enum and any of the enum cases is used unqualified. (PR #17628) - Guard for possible StackOverflowException when typechecking non recursive modules and namespaces (PR #17654)
- Nullable - fix for processing System.Nullable types with nesting (PR #17736)
- Fixes for the optimization of simple mappings in array and list comprehensions. (Issue #17708, PR #17711)
- Support for nullable reference types (PR #15181)
- Treat .ToString() on F# types as returning non-nullable string in --checknulls+ context (PR #17547)
- Parser: recover on missing union case fields (PR #17452)
- Parser: recover on missing union case field types (PR #17455)
- Sink: report function domain type (PR #17470)
- Allow access modifies to auto properties getters and setters (Language suggestion #430, PR 16687, PR 16861, PR 17522)
- Render C# nullable-analysis attributes in tooltips (PR #17485)
- Allow object expression without overrides. (Language suggestion #632, PR #17387)
- Enable FSharp 9.0 Language Version (Issue #17497), PR))
- Enable LanguageFeature.EnforceAttributeTargets in F# 9.0. (Issue #17514, PR #17516)
- Parser: better recovery for unfinished patterns (PR #17231, PR #17232))
- Enable consuming generic arguments defined as
allows ref structin C# (Issue #17597, display them in tooltips PR #17706) - Trivia for SynTypeConstraint.WhereTyparNotSupportsNull. (Issue #17721, PR #17745)
- Trivia for SynType.WithNull. (Issue #17720, PR #17745)
- Change compiler default setting realsig+ when building assemblies (Issue #17384, PR #17378)
- Change compiler default setting for compressedMetadata (Issue #17379, PR #17383)
- Treat
{ new Foo() }asSynExpr.ObjExpr(PR #17388) - Optimize metadata reading for type members and custom attributes. (PR #17364)
- Enforce
AttributeTargetson unions. (PR #17389) - Applied nullable reference types to FSharp.Compiler.Service itself (PR #15310)
- Ensure that isinteractive multi-emit backing fields are not public. (Issue #17439), (PR #17439)
- Better error reporting for unions with duplicated fields. (PR #17521)
- Better CE error reporting when using
use!withand!(PR #17671) - Better error reporting for let bindings. (PR #17601)
- Optimize ILTypeDef interface impls reading from metadata. (PR #17382)
- Make ILTypeDef interface impls calculation lazy. (PR #17392)
- Better error reporting for active patterns. (PR #17666)
- Multiple fsi sessions use separate temporary directories (PR #17760)