Skip to content

Commit e4889bb

Browse files
authored
Merge pull request #18332 from dotnet/merge/main-to-release/dev17.14
[automated] Merge branch 'main' => 'release/dev17.14'
2 parents 41926ec + f7ee577 commit e4889bb

File tree

177 files changed

+2511
-986
lines changed

Some content is hidden

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

177 files changed

+2511
-986
lines changed

.config/dotnet-tools.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -44,19 +44,19 @@
4444
],
4545
"rollForward": true
4646
},
47-
"dotnet-ilverify": {
48-
"version": "9.0.0-rc.2.24473.5",
49-
"commands": [
50-
"ilverify"
51-
],
52-
"rollForward": true
53-
},
5447
"fantomas": {
5548
"version": "6.2.3",
5649
"commands": [
5750
"fantomas"
5851
],
5952
"rollForward": true
53+
},
54+
"dotnet-ilverify": {
55+
"version": "9.0.0",
56+
"commands": [
57+
"ilverify"
58+
],
59+
"rollForward": false
6060
}
6161
}
6262
}

.fantomasignore

+10
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,14 @@ src/Compiler/Checking/TypeHierarchy.fs
4141
src/Compiler/Checking/TypeRelations.fs
4242

4343
# nullness-related problems
44+
src/Compiler/Utilities/lib.fsi
45+
src/Compiler/Utilities/Cancellable.fsi
46+
src/FSharp.Core/tasks.fsi
47+
src/FSharp.Core/tasks.fs
48+
src/FSharp.Core/resumable.fs
4449
src/Compiler/DependencyManager/DependencyProvider.fs
50+
src/FSharp.Core/fslib-extra-pervasives.fs
51+
src/FSharp.Core/fslib-extra-pervasives.fsi
4552

4653
# Incorrectly formatted: https://github.com/dotnet/fsharp/pull/14645/commits/49443a67ea8a17670c8a7c80c8bdf91f82231e91 or https://github.com/fsprojects/fantomas/issues/2733
4754
# This CompilerImports.fs behavior is not fixed yet, following up in https://github.com/fsprojects/fantomas/issues/2733
@@ -124,6 +131,9 @@ src/Compiler/SyntaxTree/LexerStore.fs
124131
src/Compiler/Driver/GraphChecking/Graph.fsi
125132
src/Compiler/Driver/GraphChecking/Graph.fs
126133

134+
src/Compiler/DependencyManager/NativeDllResolveHandler.fsi
135+
src/Compiler/DependencyManager/AssemblyResolveHandler.fsi
136+
127137
# Fantomas limitations on implementation files (to investigate)
128138

129139
src/Compiler/AbstractIL/ilwrite.fs
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,31 @@
11
### Fixed
2+
* Fix classification of `nameof` in `nameof<'T>`, `match … with nameof ident -> …`. ([Issue #10026](https://github.com/dotnet/fsharp/issues/10026), [PR #18300](https://github.com/dotnet/fsharp/pull/18300))
23
* Fix Realsig+ generates nested closures with incorrect Generic ([Issue #17797](https://github.com/dotnet/fsharp/issues/17797), [PR #17877](https://github.com/dotnet/fsharp/pull/17877))
4+
* Fix optimizer internal error for records with static fields ([Issue #18165](https://github.com/dotnet/fsharp/issues/18165), [PR #18280](https://github.com/dotnet/fsharp/pull/18280))
5+
* Fix nullness warning with flexible types ([Issue #18056](https://github.com/dotnet/fsharp/issues/18056), [PR #18266](https://github.com/dotnet/fsharp/pull/18266))
6+
* Allow first branches of match and if expressions to return nullable results ([Issue #18015](https://github.com/dotnet/fsharp/issues/18015), [PR #18322](https://github.com/dotnet/fsharp/pull/18322))
37
* Fix internal error when missing measure attribute in an unsolved measure typar. ([Issue #7491](https://github.com/dotnet/fsharp/issues/7491), [PR #18234](https://github.com/dotnet/fsharp/pull/18234)==
48
* Set `Cancellable.token` from async computation ([Issue #18235](https://github.com/dotnet/fsharp/issues/18235), [PR #18238](https://github.com/dotnet/fsharp/pull/18238))
9+
* Fix missing nullness warning when static upcast dropped nullness ([Issue #18232](https://github.com/dotnet/fsharp/issues/18232), [PR #18261](https://github.com/dotnet/fsharp/pull/18261))
10+
* Cancellable: only cancel on OCE with own token ([PR #18277](https://github.com/dotnet/fsharp/pull/18277))
11+
* Cancellable: set token in more places ([PR #18283](https://github.com/dotnet/fsharp/pull/18283))
12+
* Cancellable: fix leaking cancellation token ([PR #18295](https://github.com/dotnet/fsharp/pull/18295))
13+
* Fix NRE when accessing nullable fields of types within their equals/hash/compare methods ([PR #18296](https://github.com/dotnet/fsharp/pull/18296))
514

615
### Added
716
* Added missing type constraints in FCS. ([PR #18241](https://github.com/dotnet/fsharp/pull/18241))
17+
* The 'use' keyword can be used on IDisposable|null without nullness warnings ([PR #18262](https://github.com/dotnet/fsharp/pull/18262))
18+
* Add support for C# `Experimental` attribute. ([PR #18253](https://github.com/dotnet/fsharp/pull/18253))
19+
* Nullness warnings are issued for signature<>implementation conformance ([PR #18186](https://github.com/dotnet/fsharp/pull/18186))
20+
* Symbols: Add FSharpAssembly.IsFSharp ([PR #18290](https://github.com/dotnet/fsharp/pull/18290))
21+
* Type parameter constraint `null` in generic code will now automatically imply `not struct` ([Issue #18320](https://github.com/dotnet/fsharp/issues/18320), [PR #18323](https://github.com/dotnet/fsharp/pull/18323))
822

923
### Changed
1024

1125
* FSharpCheckFileResults.ProjectContext.ProjectOptions will not be available when using the experimental Transparent Compiler feature. ([PR #18205](https://github.com/dotnet/fsharp/pull/18205))
1226
* Update `Obsolete` attribute checking to account for `DiagnosticId` and `UrlFormat` properties. ([PR #18224](https://github.com/dotnet/fsharp/pull/18224))
27+
* Remove `Cancellable.UsingToken` from tests ([PR #18276](https://github.com/dotnet/fsharp/pull/18276))
28+
* Added nullability annotations to `.Using` builder method for `async`, `task` and compiler-internal builders ([PR #18292](https://github.com/dotnet/fsharp/pull/18292))
1329

1430
### Breaking Changes
31+
* Struct unions with overlapping fields now generate mappings needed for reading via reflection ([Issue #18121](https://github.com/dotnet/fsharp/issues/17797), [PR #18274](https://github.com/dotnet/fsharp/pull/17877))
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
### Fixed
2+
3+
### Added
4+
* Added nullability annotations to `.Using` builder method for `async` and `task` builders ([PR #18292](https://github.com/dotnet/fsharp/pull/18292))
5+
6+
### Changed
7+
8+
### Breaking Changes
9+
* Struct unions with overlapping fields now generate mappings needed for reading via reflection ([Issue #18121](https://github.com/dotnet/fsharp/issues/17797), [PR #18274](https://github.com/dotnet/fsharp/pull/18274)). Previous versions of FSharp.Core returned incomplete mapping between fields and cases, these older fslib versions will now report an exception.

eng/DotNetBuild.props

+1-2
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@
1212
the cloned source in the inner build.
1313
-->
1414
<Target Name="ConfigureInnerBuildArg"
15-
BeforeTargets="GetSourceBuildCommandConfiguration"
16-
Condition="'$(DotNetBuildSourceOnly)' == 'true'">
15+
BeforeTargets="GetSourceBuildCommandConfiguration">
1716
<PropertyGroup>
1817
<InnerBuildArgs>$(InnerBuildArgs) /p:Projects="$(InnerSourceBuildRepoRoot)\Microsoft.FSharp.Compiler.sln"</InnerBuildArgs>
1918
</PropertyGroup>

eng/Version.Details.xml

+6-6
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<Dependencies>
33
<ProductDependencies>
4-
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.25066.1">
4+
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.25081.6">
55
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
6-
<Sha>93a3395781d30f69201367371c28cfc5005c0264</Sha>
6+
<Sha>1cec3b4a8fb07138136a1ca1e04763bfcf7841db</Sha>
77
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
88
</Dependency>
99
<!-- Intermediate is necessary for source build. -->
@@ -42,14 +42,14 @@
4242
</Dependency>
4343
</ProductDependencies>
4444
<ToolsetDependencies>
45-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.25065.2">
45+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.25111.5">
4646
<Uri>https://github.com/dotnet/arcade</Uri>
47-
<Sha>c4bbc67763bf0c5a868862df874079380e647d61</Sha>
47+
<Sha>5da211e1c42254cb35e7ef3d5a8428fb24853169</Sha>
4848
</Dependency>
4949
<!-- Intermediate is necessary for source build. -->
50-
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.25065.2">
50+
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.25111.5">
5151
<Uri>https://github.com/dotnet/arcade</Uri>
52-
<Sha>c4bbc67763bf0c5a868862df874079380e647d61</Sha>
52+
<Sha>5da211e1c42254cb35e7ef3d5a8428fb24853169</Sha>
5353
<SourceBuild RepoName="arcade" ManagedOnly="true" />
5454
</Dependency>
5555
<Dependency Name="optimization.windows_nt-x64.MIBC.Runtime" Version="1.0.0-prerelease.24462.2">

eng/Versions.props

-1
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,6 @@
8787
<SystemReflectionMetadataVersion>$(SystemPackageVersionVersion)</SystemReflectionMetadataVersion>
8888
<SystemRuntimeCompilerServicesUnsafeVersion>6.1.0</SystemRuntimeCompilerServicesUnsafeVersion>
8989
<SystemThreadingTasksDataflow>$(SystemPackageVersionVersion)</SystemThreadingTasksDataflow>
90-
<SystemValueTupleVersion>4.5.0</SystemValueTupleVersion>
9190
<MicrosoftDiaSymReaderPortablePdbVersion>1.6.0</MicrosoftDiaSymReaderPortablePdbVersion>
9291
<!-- Versions for package groups -->
9392
<RoslynVersion>4.11.0-2.24264.2</RoslynVersion>

eng/common/internal/Tools.csproj

-10
Original file line numberDiff line numberDiff line change
@@ -15,16 +15,6 @@
1515
<PackageReference Include="Microsoft.DotNet.IBCMerge" Version="$(MicrosoftDotNetIBCMergeVersion)" Condition="'$(UsingToolIbcOptimization)' == 'true'" />
1616
<PackageReference Include="Drop.App" Version="$(DropAppVersion)" ExcludeAssets="all" Condition="'$(UsingToolVisualStudioIbcTraining)' == 'true'"/>
1717
</ItemGroup>
18-
<PropertyGroup>
19-
<RestoreSources></RestoreSources>
20-
<RestoreSources Condition="'$(UsingToolIbcOptimization)' == 'true'">
21-
https://devdiv.pkgs.visualstudio.com/_packaging/dotnet-core-internal-tooling/nuget/v3/index.json;
22-
</RestoreSources>
23-
<RestoreSources Condition="'$(UsingToolVisualStudioIbcTraining)' == 'true'">
24-
$(RestoreSources);
25-
https://devdiv.pkgs.visualstudio.com/_packaging/VS/nuget/v3/index.json;
26-
</RestoreSources>
27-
</PropertyGroup>
2818

2919
<!-- Repository extensibility point -->
3020
<Import Project="$(RepositoryEngineeringDir)InternalTools.props" Condition="Exists('$(RepositoryEngineeringDir)InternalTools.props')" />

global.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
{
22
"sdk": {
3-
"version": "9.0.102",
3+
"version": "9.0.103",
44
"allowPrerelease": true
55
},
66
"tools": {
7-
"dotnet": "9.0.102",
7+
"dotnet": "9.0.103",
88
"vs": {
99
"version": "17.8",
1010
"components": [
@@ -17,7 +17,7 @@
1717
"perl": "5.38.2.2"
1818
},
1919
"msbuild-sdks": {
20-
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.25065.2",
20+
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.25111.5",
2121
"Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2"
2222
}
2323
}

src/Compiler/AbstractIL/ilreflect.fs

+1-1
Original file line numberDiff line numberDiff line change
@@ -2548,7 +2548,7 @@ let EmitDynamicAssemblyFragment
25482548
ignore (typB.InvokeMemberAndLog(methodName, BindingFlags.InvokeMethod ||| BindingFlags.Public ||| BindingFlags.Static, [||]))
25492549
None
25502550
with :? TargetInvocationException as exn ->
2551-
Some exn.InnerException
2551+
Option.ofObj exn.InnerException
25522552

25532553
let emEnv, entryPts = envPopEntryPts emEnv
25542554
let execs = List.map execEntryPtFun entryPts

src/Compiler/AbstractIL/ilx.fsi

+2
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,8 @@ val mkILFormalCloRef: ILGenericParameterDefs -> IlxClosureRef -> useStaticField:
162162
// MS-ILX: Unions
163163
// --------------------------------------------------------------------
164164

165+
val mkLowerName: nm: string -> string
166+
165167
val actualTypOfIlxUnionField: IlxUnionSpec -> int -> int -> ILType
166168

167169
val mkILFreeVar: string * bool * ILType -> IlxClosureFreeVar

0 commit comments

Comments
 (0)