You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 3377652
Browse filesBrowse the repository at this point in the historyBrowse files
Shrink the mixed range change and fix the range lowering it exposed
Review asked for a smaller diff without code comments. The intent now sits in
names (BareRangeExpr, RangeAsSingleValue, mkRangeSplice, rewriteYieldFromRange,
rejectRangeOperand, SimpleSemicolonSequenceWithRanges); one rejectRangeOperand
replaces the recovery arms for yield and return of a range; the tests are four
compilations instead of a fixture per scenario.
Fixes found on the way:
- a unativeint range with a single element was treated as empty (EmptyRange),
which also dropped the element of [ 2un..2un ] and skipped for _ in 2un..2un on main
- convertSimpleReturnToExpr declines BindReturn for a returned range and stays
free of diagnostics, so FS3925 is reported once by the return arm
- the counted loop reads a mutable range operand before the later operands run
and no longer counts extra elements for a nativeint range with the smallest step
- a then sequence is not split into the elements of a flat literal
- query { return 1..3 } reports FS3144 only
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/release-notes/.FSharp.Compiler.Service/11.0.200.md
+1Lines changed: 1 addition & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,6 +12,7 @@
12
12
* Fix `NativePtr.stackalloc` used inside the `with` handler, filter or `finally` block of a `try` expression producing an assembly that throws `InvalidProgramException` at method load. Direct or mandatory-inline allocations are now reported at compile time as error FS3924; calls to non-inline allocation helpers, including handler-local helpers, remain legal and retain their method boundary during inlining and let-binding elimination. ([Issue #20295](https://github.com/dotnet/fsharp/issues/20295), [PR #20491](https://github.com/dotnet/fsharp/pull/20491))
13
13
* Preserve SRTP code generation when extension constraint solutions are disabled. ([PR #20773](https://github.com/dotnet/fsharp/pull/20773))
14
14
*`FsiEvaluationSession.EvalInteraction` and `EvalInteractionNonThrowing` evaluate every `;;`-separated interaction in the text they are given, as their documentation has always said, instead of silently discarding everything after the first. ([PR #20396](https://github.com/dotnet/fsharp/pull/20396))
15
+
* Fix the counted-loop lowering of integral ranges: a range with a single `unativeint` element is no longer treated as empty, a mutable range bound is read before the later bounds are evaluated, and a `nativeint` range with the smallest step no longer yields extra elements. ([PR #20759](https://github.com/dotnet/fsharp/pull/20759))
15
16
* Prevent `InvalidProgramException` when runtime async awaits a `Task<T>` upcast to `Task`, including through `ConfigureAwait`. ([Issue #20686](https://github.com/dotnet/fsharp/issues/20686), [PR #20726](https://github.com/dotnet/fsharp/pull/20726))
16
17
* Struct/reference anonymous-record mismatches now name anonymous records rather than tuples. ([Issue #6110](https://github.com/dotnet/fsharp/issues/6110), [PR #20681](https://github.com/dotnet/fsharp/pull/20681))
17
18
* Preserve constraint inference order when explicit generic arguments share a caller type parameter, avoiding spurious FS0001 errors with multiply implemented generic interfaces. ([PR #20491](https://github.com/dotnet/fsharp/pull/20491))
0 commit comments