Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
a9f59cd
Add ILVerification to test framework (#18255)
KevinRansom Jan 29, 2025
afb15f0
remove redundant ifdef (#18284)
majocha Jan 29, 2025
58560f8
Cancellable: only cancel on OCE with own token (#18277)
auduchinok Jan 29, 2025
5b910af
Bugfix :: Fix optimizer bug where field.Index included compiler gener…
T-Gro Feb 3, 2025
3195041
Bugfix :: Support for 'use' on a nullable IDisposable (#18262)
T-Gro Feb 3, 2025
4583331
Cancellable: set token in more places (#18283)
auduchinok Feb 3, 2025
d3bd758
[main] Update dependencies from dotnet/source-build-reference-package…
dotnet-maestro[bot] Feb 3, 2025
0263870
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] Feb 3, 2025
bacc160
Bugfix: Warn when upcast drops nullness via FindUniqueFeasibleSuperty…
T-Gro Feb 4, 2025
1f9b0ce
Cancellable: remove UsingToken usages in tests (#18276)
auduchinok Feb 4, 2025
10b812b
Bugfix :: Flexible types should subsume nullable version of equivalen…
T-Gro Feb 4, 2025
adb02dc
Bugfix:: Add missing codegen for mapping of overlapped struct DU fiel…
T-Gro Feb 4, 2025
5ef029b
Add missing project reference from FSharpSuite to fsc project (#18291)
T-Gro Feb 5, 2025
674e099
Symbols: Add FSharpAssembly.IsFSharp (#18290)
auduchinok Feb 5, 2025
841ba8e
Bugfix :: Nullness in signature file is not considered by implementat…
T-Gro Feb 6, 2025
ee55997
Handle |null types when optimizing away equals/hash/compare from Lang…
T-Gro Feb 7, 2025
ad29712
Only build the Microsoft.FSharp.Compiler.sln solution in the VMR (#18…
jkoritzinsky Feb 8, 2025
b64ea2b
Consolidate `.Using` and |null in builders (#18292)
T-Gro Feb 10, 2025
8e773e7
Add support for C# `Experimental` attribute (#18253)
edgarfgp Feb 10, 2025
7866d66
React to NuGet package pruning warnings (#18304)
ViktorHofer Feb 10, 2025
5d0812f
More OpenTelemetry changes (#18246)
majocha Feb 10, 2025
5af63aa
Cancellable: fix leaking cancellation token (#18295)
auduchinok Feb 11, 2025
96771a8
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] Feb 12, 2025
79e8531
Classify `nameof<'T>` & `match … with nameof ident -> …` correctly (#…
brianrourkeboll Feb 12, 2025
2ea701e
Cancellable: hide UsingToken and simplify inlined run (#18309)
majocha Feb 12, 2025
898c6c7
Contributes to https://github.com/dotnet/sdk/pull/46829 (#18318)
ViktorHofer Feb 14, 2025
a2f2b00
do not share (#18326)
majocha Feb 18, 2025
f939050
Bugfix :: Nullness :: Allow nullable return type for first branches o…
T-Gro Feb 21, 2025
27db996
Bugfix for breaking change when using Option.ofObj :: Type parameter …
T-Gro Feb 21, 2025
f7ee577
Merge branch 'release/dev17.14' into merge/main-to-release/dev17.14
T-Gro Feb 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions .config/dotnet-tools.json
Original file line number Diff line number Diff line change
Expand Up @@ -44,19 +44,19 @@
],
"rollForward": true
},
"dotnet-ilverify": {
"version": "9.0.0-rc.2.24473.5",
"commands": [
"ilverify"
],
"rollForward": true
},
"fantomas": {
"version": "6.2.3",
"commands": [
"fantomas"
],
"rollForward": true
},
"dotnet-ilverify": {
"version": "9.0.0",
"commands": [
"ilverify"
],
"rollForward": false
}
}
}
10 changes: 10 additions & 0 deletions .fantomasignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,14 @@ src/Compiler/Checking/TypeHierarchy.fs
src/Compiler/Checking/TypeRelations.fs

# nullness-related problems
src/Compiler/Utilities/lib.fsi
src/Compiler/Utilities/Cancellable.fsi
src/FSharp.Core/tasks.fsi
src/FSharp.Core/tasks.fs
src/FSharp.Core/resumable.fs
src/Compiler/DependencyManager/DependencyProvider.fs
src/FSharp.Core/fslib-extra-pervasives.fs
src/FSharp.Core/fslib-extra-pervasives.fsi

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

src/Compiler/DependencyManager/NativeDllResolveHandler.fsi
src/Compiler/DependencyManager/AssemblyResolveHandler.fsi

# Fantomas limitations on implementation files (to investigate)

src/Compiler/AbstractIL/ilwrite.fs
Expand Down
17 changes: 17 additions & 0 deletions docs/release-notes/.FSharp.Compiler.Service/9.0.300.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,31 @@
### Fixed
* 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))
* 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))
* 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))
* Fix nullness warning with flexible types ([Issue #18056](https://github.com/dotnet/fsharp/issues/18056), [PR #18266](https://github.com/dotnet/fsharp/pull/18266))
* 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))
* 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)==
* Set `Cancellable.token` from async computation ([Issue #18235](https://github.com/dotnet/fsharp/issues/18235), [PR #18238](https://github.com/dotnet/fsharp/pull/18238))
* 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))
* Cancellable: only cancel on OCE with own token ([PR #18277](https://github.com/dotnet/fsharp/pull/18277))
* Cancellable: set token in more places ([PR #18283](https://github.com/dotnet/fsharp/pull/18283))
* Cancellable: fix leaking cancellation token ([PR #18295](https://github.com/dotnet/fsharp/pull/18295))
* Fix NRE when accessing nullable fields of types within their equals/hash/compare methods ([PR #18296](https://github.com/dotnet/fsharp/pull/18296))

### Added
* Added missing type constraints in FCS. ([PR #18241](https://github.com/dotnet/fsharp/pull/18241))
* The 'use' keyword can be used on IDisposable|null without nullness warnings ([PR #18262](https://github.com/dotnet/fsharp/pull/18262))
* Add support for C# `Experimental` attribute. ([PR #18253](https://github.com/dotnet/fsharp/pull/18253))
* Nullness warnings are issued for signature<>implementation conformance ([PR #18186](https://github.com/dotnet/fsharp/pull/18186))
* Symbols: Add FSharpAssembly.IsFSharp ([PR #18290](https://github.com/dotnet/fsharp/pull/18290))
* 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))

### Changed

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

### Breaking Changes
* 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))
9 changes: 9 additions & 0 deletions docs/release-notes/.FSharp.Core/9.0.300.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
### Fixed

### Added
* Added nullability annotations to `.Using` builder method for `async` and `task` builders ([PR #18292](https://github.com/dotnet/fsharp/pull/18292))

### Changed

### Breaking Changes
* 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.
3 changes: 1 addition & 2 deletions eng/DotNetBuild.props
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@
the cloned source in the inner build.
-->
<Target Name="ConfigureInnerBuildArg"
BeforeTargets="GetSourceBuildCommandConfiguration"
Condition="'$(DotNetBuildSourceOnly)' == 'true'">
BeforeTargets="GetSourceBuildCommandConfiguration">
<PropertyGroup>
<InnerBuildArgs>$(InnerBuildArgs) /p:Projects="$(InnerSourceBuildRepoRoot)\Microsoft.FSharp.Compiler.sln"</InnerBuildArgs>
</PropertyGroup>
Expand Down
12 changes: 6 additions & 6 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Dependencies>
<ProductDependencies>
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.25066.1">
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.25081.6">
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
<Sha>93a3395781d30f69201367371c28cfc5005c0264</Sha>
<Sha>1cec3b4a8fb07138136a1ca1e04763bfcf7841db</Sha>
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
</Dependency>
<!-- Intermediate is necessary for source build. -->
Expand Down Expand Up @@ -42,14 +42,14 @@
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.25065.2">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.25111.5">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>c4bbc67763bf0c5a868862df874079380e647d61</Sha>
<Sha>5da211e1c42254cb35e7ef3d5a8428fb24853169</Sha>
</Dependency>
<!-- Intermediate is necessary for source build. -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.25065.2">
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.25111.5">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>c4bbc67763bf0c5a868862df874079380e647d61</Sha>
<Sha>5da211e1c42254cb35e7ef3d5a8428fb24853169</Sha>
<SourceBuild RepoName="arcade" ManagedOnly="true" />
</Dependency>
<Dependency Name="optimization.windows_nt-x64.MIBC.Runtime" Version="1.0.0-prerelease.24462.2">
Expand Down
1 change: 0 additions & 1 deletion eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -87,7 +87,6 @@
<SystemReflectionMetadataVersion>$(SystemPackageVersionVersion)</SystemReflectionMetadataVersion>
<SystemRuntimeCompilerServicesUnsafeVersion>6.1.0</SystemRuntimeCompilerServicesUnsafeVersion>
<SystemThreadingTasksDataflow>$(SystemPackageVersionVersion)</SystemThreadingTasksDataflow>
<SystemValueTupleVersion>4.5.0</SystemValueTupleVersion>
<MicrosoftDiaSymReaderPortablePdbVersion>1.6.0</MicrosoftDiaSymReaderPortablePdbVersion>
<!-- Versions for package groups -->
<RoslynVersion>4.11.0-2.24264.2</RoslynVersion>
Expand Down
10 changes: 0 additions & 10 deletions eng/common/internal/Tools.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -15,16 +15,6 @@
<PackageReference Include="Microsoft.DotNet.IBCMerge" Version="$(MicrosoftDotNetIBCMergeVersion)" Condition="'$(UsingToolIbcOptimization)' == 'true'" />
<PackageReference Include="Drop.App" Version="$(DropAppVersion)" ExcludeAssets="all" Condition="'$(UsingToolVisualStudioIbcTraining)' == 'true'"/>
</ItemGroup>
<PropertyGroup>
<RestoreSources></RestoreSources>
<RestoreSources Condition="'$(UsingToolIbcOptimization)' == 'true'">
https://devdiv.pkgs.visualstudio.com/_packaging/dotnet-core-internal-tooling/nuget/v3/index.json;
</RestoreSources>
<RestoreSources Condition="'$(UsingToolVisualStudioIbcTraining)' == 'true'">
$(RestoreSources);
https://devdiv.pkgs.visualstudio.com/_packaging/VS/nuget/v3/index.json;
</RestoreSources>
</PropertyGroup>

<!-- Repository extensibility point -->
<Import Project="$(RepositoryEngineeringDir)InternalTools.props" Condition="Exists('$(RepositoryEngineeringDir)InternalTools.props')" />
Expand Down
6 changes: 3 additions & 3 deletions global.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"sdk": {
"version": "9.0.102",
"version": "9.0.103",
"allowPrerelease": true
},
"tools": {
"dotnet": "9.0.102",
"dotnet": "9.0.103",
"vs": {
"version": "17.8",
"components": [
Expand All @@ -17,7 +17,7 @@
"perl": "5.38.2.2"
},
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.25065.2",
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.25111.5",
"Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2"
}
}
2 changes: 1 addition & 1 deletion src/Compiler/AbstractIL/ilreflect.fs
Original file line number Diff line number Diff line change
Expand Up @@ -2548,7 +2548,7 @@ let EmitDynamicAssemblyFragment
ignore (typB.InvokeMemberAndLog(methodName, BindingFlags.InvokeMethod ||| BindingFlags.Public ||| BindingFlags.Static, [||]))
None
with :? TargetInvocationException as exn ->
Some exn.InnerException
Option.ofObj exn.InnerException

let emEnv, entryPts = envPopEntryPts emEnv
let execs = List.map execEntryPtFun entryPts
Expand Down
2 changes: 2 additions & 0 deletions src/Compiler/AbstractIL/ilx.fsi
Original file line number Diff line number Diff line change
Expand Up @@ -162,6 +162,8 @@ val mkILFormalCloRef: ILGenericParameterDefs -> IlxClosureRef -> useStaticField:
// MS-ILX: Unions
// --------------------------------------------------------------------

val mkLowerName: nm: string -> string

val actualTypOfIlxUnionField: IlxUnionSpec -> int -> int -> ILType

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