Skip to content

Commit f52adae

Browse files
github-actions[bot]auduchinokdotnet-maestro[bot]T-Groabonie
authored
[automated] Merge branch 'main' => 'feature/net11-scouting' (#19376)
* Type checker: recover on argument/overload checking (#19314) * [main] Update dependencies from dotnet/arcade (#19333) * Update dependencies from https://github.com/dotnet/arcade build 20260219.2 On relative base path root Microsoft.DotNet.Arcade.Sdk From Version 10.0.0-beta.26117.6 -> To Version 10.0.0-beta.26119.2 * Update dependencies from https://github.com/dotnet/arcade build 20260223.2 On relative base path root Microsoft.DotNet.Arcade.Sdk From Version 10.0.0-beta.26117.6 -> To Version 10.0.0-beta.26123.2 --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * [main] Source code updates from dotnet/dotnet (#19343) * Backflow from https://github.com/dotnet/dotnet / 854c152 build 302768 [[ commit created by automation ]] * Update dependencies from build 302768 No dependency updates to commit [[ commit created by automation ]] * Backflow from https://github.com/dotnet/dotnet / 51587e2 build 302820 [[ commit created by automation ]] * Update dependencies from build 302820 No dependency updates to commit [[ commit created by automation ]] --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Tomas Grosup <Tomas.Grosup@gmail.com> * Update image used for insert into VS step (#19357) * Fix :: FAR :: Remove corrupted .ctor symbol reference (#19358) * DotNetBuildUseMonoRuntime stackguard (#19360) * Fsharp.Core :: {Array;List;Set;Array.Parallel} partitionWith (taking Choice<T,U> partitioner) (#19335) * Sort out some outstanding issues after xUnit upgrade (#19363) * Improve collection comparison diagnostics in tests (#19365) Added shouldBeEqualCollections to Assert.fs for detailed collection comparison, including reporting missing/unexpected items and positional differences. Updated Project25 symbol uses test to use this helper and print actual/expected values for easier debugging. * Enhance the compiler to produce a FS0750 error on let! or use! outside a CE (#19347) * Update to latest .NET 10 SDK patch (#19350) * Feature: `#elif` preprocessor directive (#19323) * Support #exit;; as alias to #quit;; in fsi (#19329) * Checker: prevent reporting optional parameter rewritten tree symbols (#19353) * Improve static compilation of state machines (#19297) * Add FSC compiler options tests (#19348) * Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20260226.1 (#19366) On relative base path root optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime From Version 1.0.0-prerelease.26117.2 -> To Version 1.0.0-prerelease.26126.1 Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> * Fix Get-PrBuildIds.ps1 reporting SUCCESS while builds in progress (#19313) * Fix flaky Project25 TP test by replacing FSharp.Data NuGet with TestTP (#19364) (#19373) Replace FSharp.Data (resolved via NuGet at runtime) with the built-in TestTP type provider for the Project25 symbol API tests. This fixes non-deterministic test failures on Linux CI caused by Directory.GetFiles returning DLLs in random inode order on ext4, which varied whether the FSharp.Data namespace was tagged as 'provided' or not. Changes: - Replace 70-line NuGet restore/staging setup with 2-line TestTP reference - Update source to use ErasedWithConstructor.Provided.MyType instead of FSharp.Data.XmlProvider - Replace brittle exact-match symbol list with targeted assertions for provided types, methods, and namespaces - Remove FactSkipOnSignedBuild (TestTP is always available after build) - Rename test variables to match the types being tested Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Add automatic merge flow from main to feature/net11-scouting (#19283) * Optimize Set.intersect symmetry and add release notes (#19292) Co-authored-by: Ahmed <w0lf@192.168.1.8> * Fix strong name signature size to align with Roslyn for public signing (#11887) (#19242) * Use culture-independent `IndexOf` in interpolated string parsing (#19370) * Rename "inline hints" to "inlay hints" (#19318) * Rename "inline hints" to "inlay hints" for LSP consistency Aligns F#-owned terminology with LSP and VS Code conventions. The Roslyn ExternalAccess types (IFSharpInlineHintsService, etc.) are left unchanged as they are owned by Roslyn. Fixes #16608 * Add release note for inline-to-inlay hints rename --------- Co-authored-by: Tomas Grosup <Tomas.Grosup@gmail.com> * FCS: capture additional types during analysis (#19305) * remove duplicate FlatErrors file (#19383) * Update dependencies from https://github.com/dotnet/arcade build 20260302.1 (#19379) [main] Update dependencies from dotnet/arcade * [main] Update dependencies from dotnet/msbuild (#19021) * Update dependencies from https://github.com/dotnet/msbuild build 20251021.3 On relative base path root Microsoft.Build , Microsoft.Build.Framework , Microsoft.Build.Tasks.Core , Microsoft.Build.Utilities.Core From Version 18.1.0-preview-25515-01 -> To Version 18.1.0-preview-25521-03 * Update dependencies from https://github.com/dotnet/msbuild build 20251023.2 On relative base path root Microsoft.Build , Microsoft.Build.Framework , Microsoft.Build.Tasks.Core , Microsoft.Build.Utilities.Core From Version 18.1.0-preview-25515-01 -> To Version 18.1.0-preview-25523-02 * Update dependencies from https://github.com/dotnet/msbuild build 20251024.3 On relative base path root Microsoft.Build , Microsoft.Build.Framework , Microsoft.Build.Tasks.Core , Microsoft.Build.Utilities.Core From Version 18.1.0-preview-25515-01 -> To Version 18.1.0-preview-25524-03 * Update dependencies from https://github.com/dotnet/msbuild build 20251027.5 On relative base path root Microsoft.Build , Microsoft.Build.Framework , Microsoft.Build.Tasks.Core , Microsoft.Build.Utilities.Core From Version 18.1.0-preview-25515-01 -> To Version 18.1.0-preview-25527-05 * Update dependencies from https://github.com/dotnet/msbuild build 20251027.6 On relative base path root Microsoft.Build , Microsoft.Build.Framework , Microsoft.Build.Tasks.Core , Microsoft.Build.Utilities.Core From Version 18.1.0-preview-25515-01 -> To Version 18.1.0-preview-25527-06 * Update dependencies from https://github.com/dotnet/msbuild build 20251104.4 On relative base path root Microsoft.Build , Microsoft.Build.Framework , Microsoft.Build.Tasks.Core , Microsoft.Build.Utilities.Core From Version 18.1.0-preview-25515-01 -> To Version 18.1.0-preview-25554-04 * Bump dependency versions in Version.Details.props Updated package versions for several dependencies. --------- Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Tomas Grosup <Tomas.Grosup@gmail.com> * Add fsharp-release-announcement agent (#19390) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> * Fix Seq.empty rendering as "EmptyEnumerable" in serializers (#19317) * Update FileContentMapping.fs (#19391) * Fix flaky help_options test: restore enableConsoleColoring after mutation (#19385) * Initial plan * Fix flaky help_options test by saving/restoring enableConsoleColoring global The `fsc --consolecolors switch` test mutates the global `enableConsoleColoring` via `--consolecolors-`. When help_options tests run after this test, the help output says "(off by default)" instead of "(on by default)", causing baseline mismatches. Fix: save and restore `enableConsoleColoring` around the test. Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com> Co-authored-by: Tomas Grosup <Tomas.Grosup@gmail.com> * isolate checker (#19393) Isolate type-provider tests with dedicated FSharpChecker Introduce Project25.checker to avoid shared state races in type-provider tests. All relevant test cases now use this dedicated instance, improving test isolation, reliability, and determinism without changing test functionality. * Introduce CallRelatedSymbolSink to avoid affect name resolution with related symbols (#19361) * Add RelatedSymbolUseKind flags enum and separate sink for related symbols Address auduchinok's review comments on PR #19252: related symbols (union case testers, copy-and-update record types) are now reported via a separate NotifyRelatedSymbolUse sink instead of abusing NotifyNameResolution. - Add [<Flags>] RelatedSymbolUseKind enum (None/UnionCaseTester/CopyAndUpdateRecord/All) - Add NotifyRelatedSymbolUse to ITypecheckResultsSink interface - Refactor RegisterUnionCaseTesterForProperty to use the new sink - Refactor copy-and-update in TcRecdExpr to use CallRelatedSymbolSink - Add ?relatedSymbolKinds parameter to GetUsesOfSymbolInFile (default: None) - Wire up VS FAR to pass relatedSymbolKinds=All - Write related symbols to ItemKeyStore for background FAR - Update semantic classification tests: tester properties now classified as Property (not UnionCase) since they're no longer in capturedNameResolutions * Add release notes for FSharp.Compiler.Service 11.0.100 --------- Co-authored-by: Eugene Auduchinok <eugene.auduchinok@gmail.com> Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com> Co-authored-by: Tomas Grosup <Tomas.Grosup@gmail.com> Co-authored-by: Adam Boniecki <20281641+abonie@users.noreply.github.com> Co-authored-by: Jakub Majocha <1760221+majocha@users.noreply.github.com> Co-authored-by: Evgeny Tsvetkov <61620612+evgTSV@users.noreply.github.com> Co-authored-by: Youssef Victor <youssefvictor00@gmail.com> Co-authored-by: Bozhidar Batsov <bozhidar@batsov.dev> Co-authored-by: Copilot <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Co-authored-by: Ahmed Waleed <ahmedwalidahmed.0@gmail.com> Co-authored-by: Ahmed <w0lf@192.168.1.8> Co-authored-by: Brian Rourke Boll <brianrourkeboll@users.noreply.github.com> Co-authored-by: Apoorv Darshan <ad13dtu@gmail.com> Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>
1 parent 03fb573 commit f52adae

191 files changed

Lines changed: 3921 additions & 1398 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.config/service-branch-merge.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,18 @@
1616
"release/dev18.0": {
1717
"MergeToBranch": "main",
1818
"ExtraSwitches": "-QuietComments"
19+
},
20+
"main": {
21+
"MergeToBranch": "feature/net11-scouting",
22+
"ExtraSwitches": "-QuietComments",
23+
"ResetToTargetPaths": [
24+
"global.json",
25+
"eng/Version.Details.xml",
26+
"eng/Version.Details.props",
27+
"eng/Versions.props",
28+
"eng/common/**",
29+
"eng/TargetFrameworks.props"
30+
]
1931
}
2032
}
2133
}
Lines changed: 169 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,169 @@
1+
---
2+
name: F# Release Announcement
3+
description: Craft F# release announcements for .NET preview/release milestones by tracing SDK→VMR→dotnet/fsharp commit ranges, analyzing release notes, PRs, and issues, then producing a markdown article.
4+
---
5+
6+
# 0. Resolve SDK branch names
7+
8+
User provides only a target release name (e.g., ".NET 11 Preview 2"). Derive everything else.
9+
10+
```bash
11+
# List all release branches in dotnet/sdk
12+
gh api repos/dotnet/sdk/branches --paginate -q '.[].name' | grep '^release/' | sort -V
13+
```
14+
15+
Branch naming pattern: `release/<major>.0.<band>xx-preview<N>` or `release/<major>.0.<band>xx`
16+
17+
From the listing, identify:
18+
1. **Target branch**: match release name to branch (e.g., ".NET 11 Preview 2" → `release/11.0.1xx-preview2`)
19+
2. **Previous branch**: prior preview or prior milestone (e.g., preview1 for preview2, or last stable for preview1)
20+
3. **Parallel stable branch**: highest `<major-1>.0.Xxx` branch (for exclusivity check)
21+
22+
# 1. Fetch previous announcement — DO NOT REPEAT
23+
24+
```
25+
gh api repos/dotnet/core/contents/release-notes -q '.[].name'
26+
```
27+
28+
Navigate to latest published `fsharp.md` under `release-notes/<major>/preview/*/`. Fetch it. Every item in it is excluded from output.
29+
30+
# 2. Resolve F# commit range
31+
32+
**CRITICAL**: Use SDK, not VMR branch. VMR branch may have newer F# than what SDK locked in.
33+
34+
### Get F# end commit (target release)
35+
36+
```
37+
# 1. SDK → VMR hash (find the Dependency for Microsoft.FSharp.Compiler, extract its Sha)
38+
gh api repos/dotnet/sdk/contents/eng/Version.Details.xml?ref=release/11.0.1xx-preview2 | jq -r '.content' | base64 -d | grep -A2 'Microsoft.FSharp.Compiler' | grep Sha | sed 's/.*>\([a-f0-9]*\)<.*/\1/'
39+
# Result: VMR_HASH
40+
41+
# 2. VMR → F# hash
42+
gh api repos/dotnet/dotnet/contents/src/source-manifest.json?ref=VMR_HASH | jq -r '.content' | base64 -d | jq -r '.repositories[] | select(.path=="fsharp") | .commitSha'
43+
# Result: FSHARP_END
44+
```
45+
46+
### Get F# start commit (previous release)
47+
48+
Repeat above with previous SDK branch (e.g., `release/11.0.1xx-preview1`).
49+
Result: `FSHARP_START`
50+
51+
### Cross-check with parallel SDK branch
52+
53+
Repeat for `release/10.0.3xx` (or current stable band). Compare F# hash. Determine if features are shared or exclusive.
54+
55+
# 3. Diff release notes
56+
57+
```bash
58+
git diff FSHARP_START..FSHARP_END -- docs/release-notes/ | grep '^+' | grep -v '^+++'
59+
```
60+
61+
Source files:
62+
- `docs/release-notes/.FSharp.Compiler.Service/*.md`
63+
- `docs/release-notes/.FSharp.Core/*.md`
64+
- `docs/release-notes/.Language/*.md`
65+
- `docs/release-notes/.VisualStudio/*.md`
66+
67+
### EXCLUDE
68+
69+
- Already in previous announcement
70+
- CI, infra, test-only, repo maintenance, dependency updates, localization
71+
- FCS-internal API (unless enables user scenario)
72+
- xUnit migration, build scripts, baseline updates
73+
74+
# 4. Investigate each entry via sub-agents
75+
76+
For each user-facing release note entry, spawn a sub-agent (explore or general-purpose) to investigate it independently. Each sub-agent writes its findings to a temp file.
77+
78+
```
79+
For each entry with PR #NUMBER:
80+
81+
Launch sub-agent with prompt:
82+
"""
83+
Investigate dotnet/fsharp PR #NUMBER.
84+
1. Get PR author, title, description, linked issues
85+
2. Get files changed — classify as: feature / bugfix / test-only / infra
86+
3. If feature or significant bugfix:
87+
- Find test files: git diff-tree --no-commit-id -r <MERGE_SHA> --name-only | grep -i test
88+
- Extract the most illustrative code sample from the tests (real F# code, not test harness)
89+
- Note benchmark data if PR description has any
90+
4. If author is NOT T-Gro, Copilot, or abonie → mark as community contributor
91+
5. Write findings to /tmp/release-notes/pr-NUMBER.md in this format:
92+
93+
## PR #NUMBER: <title>
94+
- Author: <login> (community: yes/no)
95+
- Type: feature | bugfix | api | perf | infra
96+
- One-line summary: <what changed for users>
97+
- Issue(s): #X, #Y
98+
- Code sample (if feature/api):
99+
```fsharp
100+
<code from tests>
101+
```
102+
- Benchmark (if perf):
103+
<table or numbers from PR>
104+
"""
105+
```
106+
107+
Run sub-agents in parallel (up to 5). Wait for all to complete. Read all `/tmp/release-notes/pr-*.md` files to assemble the full picture.
108+
109+
Skip entries where sub-agent classified as `infra` or `test-only`.
110+
111+
# 5. Write the article
112+
113+
## Attribution
114+
115+
- Community contributors: `Thanks to [**user**](https://github.com/user)` with link
116+
- NEVER mention: T-Gro, Copilot, abonie (internal)
117+
- Credit community even if their PR was superseded (e.g., "Inspired by [**user**]'s work in #XXXX")
118+
119+
## Structure
120+
121+
```markdown
122+
# F# in .NET XX Preview Y - Release Notes
123+
124+
Here's a summary of what's new in F# in this Preview Y release:
125+
126+
- [Highlight 1](#anchor)
127+
- [Highlight 2](#anchor)
128+
- [Category 1](#anchor)
129+
- [Category 2](#anchor)
130+
- [Bug fixes](#bug-fixes-and-other-improvements)
131+
132+
## Highlight 1 ← 1-3 sections, CODE SAMPLES from tests, minimal prose
133+
## Highlight 2
134+
## Category: Query fixes ← bullet list with issue links, no code
135+
## Category: IDE fixes ← bullet list
136+
## Bug fixes ← flat bullet list, prefixed by area (Nullness:, Scripts:, etc.)
137+
138+
F# updates:
139+
- [F# release notes](https://fsharp.github.io/fsharp-compiler-docs/release-notes/About.html)
140+
- [dotnet/fsharp repository](https://github.com/dotnet/fsharp)
141+
```
142+
143+
## Highlight selection (pick 1-3)
144+
145+
Rank by: language feature > new API > perf win with numbers > significant bug fix area
146+
Each MUST have code sample extracted from PR tests. No invented examples.
147+
148+
## Style
149+
150+
- One-sentence intro max, then code block or table
151+
- No fluff, no "we are excited", no "this release brings"
152+
- Bold key terms in bullet lists
153+
- Link every issue and PR number
154+
155+
# SDK branch naming
156+
157+
| Release | Branch |
158+
|---|---|
159+
| .NET 11 Preview N | `release/11.0.1xx-previewN` |
160+
| .NET 10.0.X00 | `release/10.0.Xxx` |
161+
162+
# Key files
163+
164+
| Repo | Path | Contains |
165+
|---|---|---|
166+
| dotnet/sdk | `eng/Version.Details.xml` | VMR commit SHA |
167+
| dotnet/dotnet | `src/source-manifest.json` | F# commit SHA |
168+
| dotnet/fsharp | `docs/release-notes/` | Per-version changelogs |
169+
| dotnet/core | `release-notes/` | Published announcements |

.github/skills/pr-build-status/scripts/Get-PrBuildIds.ps1

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,12 @@
1919
./Get-PrBuildIds.ps1 -PrNumber 33251 -Repo "dotnet/fsharp"
2020
2121
.OUTPUTS
22-
Array of objects with Pipeline, BuildId, State, and Link properties.
22+
Array of objects with Pipeline, BuildId, State, Detail, and Link properties.
23+
The State represents the worst-case state across all jobs in the build:
24+
- FAILURE if any job failed
25+
- IN_PROGRESS if any job is still running or queued
26+
- SUCCESS if all jobs completed successfully
27+
The Detail field shows the count of jobs in each state.
2328
#>
2429

2530
[CmdletBinding()]
@@ -60,6 +65,30 @@ $builds = $checks | Where-Object { $_.link -match "dev\.azure\.com" } | ForEach-
6065
State = $_.state
6166
Link = $_.link
6267
}
63-
} | Sort-Object -Property Pipeline, BuildId -Unique
68+
} | Group-Object BuildId | ForEach-Object {
69+
$jobs = $_.Group
70+
$states = $jobs | Select-Object -ExpandProperty State -Unique
71+
72+
# Determine overall state (worst case wins)
73+
$overall = if ($states -contains "FAILURE") {
74+
"FAILURE"
75+
}
76+
elseif ($states -contains "IN_PROGRESS" -or $states -contains "QUEUED") {
77+
"IN_PROGRESS"
78+
}
79+
else {
80+
"SUCCESS"
81+
}
82+
83+
$first = $jobs | Select-Object -First 1
84+
85+
[PSCustomObject]@{
86+
Pipeline = $first.Pipeline
87+
BuildId = $first.BuildId
88+
State = $overall
89+
Detail = ($jobs | Group-Object State | ForEach-Object { "$($_.Count) $($_.Name)" }) -join ", "
90+
Link = ($first.Link -replace "\&view=.*", "")
91+
}
92+
}
6493

6594
$builds

VisualFSharp.sln

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,19 @@
11

22
Microsoft Visual Studio Solution File, Format Version 12.00
3-
# Visual Studio Version 17
4-
VisualStudioVersion = 17.1.32113.165
3+
# Visual Studio Version 18
4+
VisualStudioVersion = 18.3.11210.18 main
55
MinimumVisualStudioVersion = 10.0.40219.1
66
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}"
77
EndProject
88
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VisualFSharp.UnitTests Support", "VisualFSharp.UnitTests Support", "{3F044931-FB83-4433-B934-AE66AB27B278}"
99
EndProject
1010
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "VisualFSharp", "VisualFSharp", "{4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}"
1111
ProjectSection(SolutionItems) = preProject
12+
vsintegration\Directory.Build.props = vsintegration\Directory.Build.props
13+
vsintegration\Directory.Build.targets = vsintegration\Directory.Build.targets
1214
vsintegration\readme.md = vsintegration\readme.md
15+
vsintegration\Templates.Directory.Build.props = vsintegration\Templates.Directory.Build.props
16+
vsintegration\Templates.Directory.Build.targets = vsintegration\Templates.Directory.Build.targets
1317
EndProjectSection
1418
EndProject
1519
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Compiler", "Compiler", "{3881429D-A97A-49EB-B7AE-A82BA5FE9C77}"

azure-pipelines-PR.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,9 @@ stages:
207207
- name: 'Managed'
208208
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9'
209209
buildArguments: '--source-build'
210+
- name: 'Managed_MonoRuntime'
211+
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9'
212+
buildArguments: '--source-build /p:DotNetBuildUseMonoRuntime=true'
210213
enableTelemetry: true
211214
helixRepo: dotnet/fsharp
212215
jobs:

docs/release-notes/.FSharp.Compiler.Service/10.0.300.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
### Fixed
22

3+
* Fix strong name signature size to align with Roslyn for public signing ([Issue #17451](https://github.com/dotnet/fsharp/issues/17451), [PR #19242](https://github.com/dotnet/fsharp/pull/19242))
34
* Nullness: Fix UoM ToString returning `string | null` for value types. ([Issue #17539](https://github.com/dotnet/fsharp/issues/17539), [PR #19262](https://github.com/dotnet/fsharp/pull/19262))
45
* Nullness: Fix pipe operator nullness warning location to point at nullable argument. ([Issue #18013](https://github.com/dotnet/fsharp/issues/18013), [PR #19262](https://github.com/dotnet/fsharp/pull/19262))
56
* Nullness: Fix false positive warning when passing non-null AllowNullLiteral constructor result. ([Issue #18021](https://github.com/dotnet/fsharp/issues/18021), [PR #19262](https://github.com/dotnet/fsharp/pull/19262))
@@ -15,15 +16,24 @@
1516
* Fixed Find All References on discriminated union cases not including case tester properties (e.g., `.IsCase`). ([Issue #16621](https://github.com/dotnet/fsharp/issues/16621), [PR #19252](https://github.com/dotnet/fsharp/pull/19252))
1617
* Fixed Find All References on record types not including copy-and-update expressions. ([Issue #15290](https://github.com/dotnet/fsharp/issues/15290), [PR #19252](https://github.com/dotnet/fsharp/pull/19252))
1718
* Fixed Find All References on constructor definitions not finding all constructor usages. ([Issue #14902](https://github.com/dotnet/fsharp/issues/14902), [PR #19252](https://github.com/dotnet/fsharp/pull/19252))
19+
* Fixed Find All References producing corrupted duplicate constructor symbol references with shifted ranges, and removed duplicate attribute symbols from type definition error-reporting. ([Issue #19336](https://github.com/dotnet/fsharp/issues/19336), [PR #19358](https://github.com/dotnet/fsharp/pull/19358))
1820
* Fixed semantic classification regression where copy-and-update record fields were colored as type names, and union case tester dot was colored as union case. ([PR #19311](https://github.com/dotnet/fsharp/pull/19311))
1921
* Fix false FS1182 (unused variable) warning for query expression variables used in where, let, join, and select clauses. ([Issue #422](https://github.com/dotnet/fsharp/issues/422))
2022
* Fix FS0229 B-stream misalignment when reading metadata from assemblies compiled with LangVersion < 9.0, introduced by [#17706](https://github.com/dotnet/fsharp/pull/17706). ([PR #19260](https://github.com/dotnet/fsharp/pull/19260))
2123
* Fix FS3356 false positive for instance extension members with same name on different types, introduced by [#18821](https://github.com/dotnet/fsharp/pull/18821). ([PR #19260](https://github.com/dotnet/fsharp/pull/19260))
2224
* Fix graph-based type checking incorrectly resolving dependencies when the same module name is defined across multiple files in the same namespace. ([PR #19280](https://github.com/dotnet/fsharp/pull/19280))
2325
* F# Scripts: Fix default reference paths resolving when an SDK directory is specified. ([PR #19270](https://github.com/dotnet/fsharp/pull/19270))
26+
* Improve static compilation of state machines. ([PR #19297](https://github.com/dotnet/fsharp/pull/19297))
27+
* Fix a bug where `let!` and `use!` were incorrectly allowed outside computation expressions. [PR #19347](https://github.com/dotnet/fsharp/pull/19347)
2428

2529
### Added
2630
* FSharpType: add ImportILType ([PR #19300](https://github.com/dotnet/fsharp/pull/19300))
31+
* Type checker: recover on argument/overload checking ([PR #19314](https://github.com/dotnet/fsharp/pull/19314))
32+
* Introduced a separate `NotifyRelatedSymbolUse` sink and `[<Flags>] RelatedSymbolUseKind` enum for related symbol lookups (union case testers, copy-and-update record types). `GetUsesOfSymbolInFile` and `GetSemanticClassification` accept an optional `relatedSymbolKinds` parameter to opt in. ([PR #19361](https://github.com/dotnet/fsharp/pull/19361))
33+
34+
* Support `#exit;;` as alias to `#quit;;` in F# Interactive. ([PR #19329](https://github.com/dotnet/fsharp/pull/19329))
35+
36+
* FCS: capture additional types during analysis ([PR #19305](https://github.com/dotnet/fsharp/pull/19305))
2737

2838
### Changed
2939

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
### Fixed
2+
3+
4+
### Added

docs/release-notes/.FSharp.Core/10.0.300.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
### Fixed
22

3+
* Optimize Set.intersect performance symmetry and preserve identity from the first set argument. ([PR #19291](https://github.com/dotnet/fsharp/pull/19291)) (Fixes #19139)
34
* Fix anonymous record field ordering in LINQ expression conversion to produce consistent expression trees regardless of field declaration order. ([Issue #11131](https://github.com/dotnet/fsharp/issues/11131), [Issue #15648](https://github.com/dotnet/fsharp/issues/15648))
45
* Fix array indexing in LINQ expressions to generate proper array index expressions instead of GetArray method calls, enabling LINQ providers like Azure Cosmos DB to translate array access. ([Issue #16918](https://github.com/dotnet/fsharp/issues/16918))
56
* Fix tuple join conditions and groupBy operations to properly compare tuple keys using structural equality. AnonymousObject types now implement Equals and GetHashCode, enabling inline tuple joins like `join b on ((a.Id1, a.Id2) = (b.Id1, b.Id2))` to work correctly. ([Issue #7885](https://github.com/dotnet/fsharp/issues/7885), [Issue #47](https://github.com/dotnet/fsharp/issues/47))
67
* Fix tuple/multi-value projections in queries to use Queryable.Select instead of Enumerable.Select when the source is IQueryable, preserving query composition and enabling async operations like ToListAsync() in Entity Framework Core. ([Issue #3782](https://github.com/dotnet/fsharp/issues/3782), [Issue #15133](https://github.com/dotnet/fsharp/issues/15133))
78
* Fix EvaluateQuotation to handle Sequential expressions, void method calls (unit return), and other patterns that were previously throwing NotSupportedException. Also properly handles unit-returning expressions by using Action delegates instead of Func delegates. ([Issue #19099](https://github.com/dotnet/fsharp/issues/19099))
89
* Fix query conditionals without else branch (if-then only) that were causing type mismatch errors. Now properly extracts element type from IQueryable for creating empty sequences. ([Issue #3445](https://github.com/dotnet/fsharp/issues/3445))
10+
* Fix `Seq.empty` rendering as `"EmptyEnumerable"` in serializers by delegating to `System.Linq.Enumerable.Empty<'T>()` instead of using a custom DU type. ([Issue #17864](https://github.com/dotnet/fsharp/issues/17864), [PR #19317](https://github.com/dotnet/fsharp/pull/19317))
911

1012
### Added
1113

14+
* Add `List.partitionWith`, `Array.partitionWith`, `Set.partitionWith`, and `Array.Parallel.partitionWith` functions that partition a collection using a function that returns `Choice<'T1, 'T2>`. ([Language Suggestion #1119](https://github.com/fsharp/fslang-suggestions/issues/1119))
15+
1216
### Changed
1317

1418
* Added complexity documentation (Big-O notation) to all 462 functions across Array, List, Seq, Map, and Set collection modules. ([PR #19240](https://github.com/dotnet/fsharp/pull/19240))

docs/release-notes/.Language/11.0.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
### Added
22

33
* Simplify implementation of interface hierarchies with equally named abstract slots: when a derived interface provides a Default Interface Member (DIM) implementation for a base interface slot, F# no longer requires explicit interface declarations for the DIM-covered slot. ([Language suggestion #1430](https://github.com/fsharp/fslang-suggestions/issues/1430), [RFC FS-1336](https://github.com/fsharp/fslang-design/pull/826), [PR #19241](https://github.com/dotnet/fsharp/pull/19241))
4+
* Support `#elif` preprocessor directive ([Language suggestion #1370](https://github.com/fsharp/fslang-suggestions/issues/1370), [RFC FS-1334](https://github.com/fsharp/fslang-design/blob/main/RFCs/FS-1334-elif-preprocessor-directive.md), [PR #XXXXX](https://github.com/dotnet/fsharp/pull/XXXXX))
45

56
### Fixed
67

docs/release-notes/.VisualStudio/18.vNext.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,5 +3,8 @@
33
* Fixed Rename incorrectly renaming `get` and `set` keywords for properties with explicit accessors. ([Issue #18270](https://github.com/dotnet/fsharp/issues/18270), [PR #19252](https://github.com/dotnet/fsharp/pull/19252))
44
* Fixed Find All References crash when F# project contains non-F# files like `.cshtml`. ([Issue #16394](https://github.com/dotnet/fsharp/issues/16394), [PR #19252](https://github.com/dotnet/fsharp/pull/19252))
55
* Find All References for external DLL symbols now only searches projects that reference the specific assembly. ([Issue #10227](https://github.com/dotnet/fsharp/issues/10227), [PR #19252](https://github.com/dotnet/fsharp/pull/19252))
6+
* Improve static compilation of state machines. ([PR #19297](https://github.com/dotnet/fsharp/pull/19297))
67

78
### Changed
9+
10+
* Rename "inline hints" to "inlay hints" in VS options for consistency with industry terminology. ([PR #19318](https://github.com/dotnet/fsharp/pull/19318))

0 commit comments

Comments
 (0)