Skip to content

Commit 6a65374

Browse files
authored
Merge branch 'feature/nullness' into feature-nullness-variance
2 parents 49bec1c + 59938f4 commit 6a65374

File tree

745 files changed

+3043
-2096
lines changed

Some content is hidden

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

745 files changed

+3043
-2096
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: Nullness-related report
2+
title: 'Nullness issue - ....'
3+
description: Create a report related to nullable reference types handling
4+
labels: [Bug, Needs-Triage,Area-Nullness]
5+
assignees: 'T-Gro'
6+
body:
7+
- type: textarea
8+
attributes:
9+
label: Issue description
10+
description: A concise description of what you're experiencing.
11+
validations:
12+
required: true
13+
- type: markdown
14+
attributes:
15+
value: |
16+
Please check at [Nullable Reference Types RFC](https://github.com/fsharp/fslang-design/blob/main/RFCs/FS-1060-nullable-reference-types.md) if this issue isn't a known limitation, such as missing flow-control analysis after branching constructs like `if` or `while`. Also check at [existing nullness issues](https://github.com/dotnet/fsharp/issues?q=is%3Aissue+label%3AArea-Nullness+) if it hasn't been reported already.
17+
Please provide a succinct description of the issue and choose 1 or more from the following categories of impact
18+
- type: checkboxes
19+
id: categories
20+
attributes:
21+
label: Choose one or more from the following categories of impact
22+
options:
23+
- label: Unexpected nullness warning (false positive in nullness checking, code uses --checknulls and langversion:preview).
24+
- label: Missing nullness warning in a case which can produce nulls (false negative, code uses --checknulls and langversion:preview).
25+
- label: Breaking change related to older `null` constructs in code not using the checknulls switch.
26+
- label: Breaking change related to generic code and explicit type constraints (`null`, `not null`).
27+
- label: Type inference issue (i.e. code worked without type annotations before, and applying the --checknulls enforces type annotations).
28+
- label: C#/F# interop issue related to nullness metadata.
29+
- label: Other (none of the categories above apply).
30+
validations:
31+
required: true
32+
- type: dropdown
33+
id: os
34+
attributes:
35+
label: Operating System
36+
description: What operating system are you running?
37+
options:
38+
- Windows (Default)
39+
- Linux
40+
- macOS
41+
default: 0
42+
validations:
43+
required: true
44+
- type: dropdown
45+
id: dotnet-kind
46+
attributes:
47+
label: What .NET runtime/SDK kind are you seeing the issue on
48+
multiple: false
49+
options:
50+
- .NET SDK (.NET Core, .NET 5+)
51+
- .NET Framework
52+
default: 0
53+
validations:
54+
required: true
55+
- type: input
56+
id: dotnet-version
57+
attributes:
58+
label: .NET Runtime/SDK version
59+
placeholder: e.g. .NET 9 or .NET SDK 9.0.100
60+
- type: textarea
61+
attributes:
62+
label: Reproducible code snippet and actual behavior
63+
description: |
64+
Provide a small code snippet demonstrating the issue. |
65+
If referenced code is needed for the repro and cannot be shared (e.g. a private C# nuget package), try to share at least the metadata annotations from the called type+member as seen in `ilspy.exe`. C# compiler produces attributes like `[Nullable]` and `[NullableContext]`, which is what F# compiler tries to load and interpret in C#/F# interop scenarios.
66+
placeholder: Code snippet
67+
validations:
68+
required: false
69+
- type: textarea
70+
attributes:
71+
label: Possible workarounds
72+
description: |
73+
Are there any language constructs (typically pattern matching, library constructs, Null/NonNull active patterns, explicit type annotations) allowing the same logic be expressed differently in order to mitigate the experienced nullness issue?
74+
placeholder: Possible workaround
75+
validations:
76+
required: false

Test.cmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
@echo off
1+
@echo off
22
powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\build.ps1""" -test %*"

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
### Fixed
22

3-
3+
* Enforce `AttributeTargets` on records. ([PR #17207](https://github.com/dotnet/fsharp/pull/17207))
44
* Fix a false positive of the `[<TailCall>]` analysis in combination with async. ([Issue #17237](https://github.com/dotnet/fsharp/issues/17237), [PR #17241](https://github.com/dotnet/fsharp/pull/17241))
55
* Extended #help directive in fsi to show documentation in the REPL. ([PR #17140](https://github.com/dotnet/fsharp/pull/17140))
66
* Fix internal error when dotting into delegates with multiple type parameters. ([PR #17227](https://github.com/dotnet/fsharp/pull/17227))
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
### Fixed
2+
3+
### Added
4+
5+
### Changed
6+
* Change compiler default setting realsig+ when building assemblies ([Issue #17384](https://github.com/dotnet/fsharp/issues/17384), [PR #17378](https://github.com/dotnet/fsharp/pull/17385))
7+
* Change compiler default setting for compressedMetadata ([Issue #17379](https://github.com/dotnet/fsharp/issues/17379), [PR #17383](https://github.com/dotnet/fsharp/pull/17383))
8+
9+
### Breaking Changes

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@
88

99
* Cache delegate in query extensions. ([PR #17130](https://github.com/dotnet/fsharp/pull/17130))
1010
* Update `AllowNullLiteralAttribute` to also use `AttributeTargets.Interface` ([PR #17173](https://github.com/dotnet/fsharp/pull/17173))
11+
* Update `StructAttribute ` to also use `AttributeTargets.Class` ([PR #17207](https://github.com/dotnet/fsharp/pull/17207))
1112

1213
### Breaking Changes
1314

14-
* Fixed argument exception throwing inconsistency - accessing an out-of-bounds collection index will now throw `ArgumentOutOfRangeException` instead of `ArgumentException` ([#17328](https://github.com/dotnet/fsharp/pull/17328))
15-
15+
* Fixed argument exception throwing inconsistency - accessing an out-of-bounds collection index will now throw `ArgumentOutOfRangeException` instead of `ArgumentException` ([#17328](https://github.com/dotnet/fsharp/pull/17328))
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
### Fixed
2+
3+
### Added
4+
5+
### Changed
6+
* Change compiler default setting realsig+ when building assemblies ([Issue #17384](https://github.com/dotnet/fsharp/issues/17384), [PR #17378](https://github.com/dotnet/fsharp/pull/17385))
7+
* Change compiler default setting for compressedMetadata ([Issue #17379](https://github.com/dotnet/fsharp/issues/17379), [PR #17383](https://github.com/dotnet/fsharp/pull/17383))
8+
9+
### Breaking Changes
10+
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
### Fixed
2+
3+
4+
### Added
5+

eng/SourceBuildPrebuiltBaseline.xml

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,23 +4,24 @@
44
<UsageData>
55
<IgnorePatterns>
66
<!-- Ignoring the known prebuilts. -->
7-
87
<!--
98
These will go away when repo updates targeting to net8.0
109
Tracked with https://github.com/dotnet/fsharp/issues/14765
1110
-->
1211
<UsagePattern IdentityGlob="Microsoft.AspNetCore.App.Ref/8.0.*" />
1312
<UsagePattern IdentityGlob="Microsoft.NETCore.App.Host.linux-x64/8.0.*" />
1413
<UsagePattern IdentityGlob="Microsoft.NETCore.App.Ref/8.0.*" />
15-
<UsagePattern IdentityGlob="System.Configuration.ConfigurationManager/7.0.0" />
16-
<UsagePattern IdentityGlob="System.Diagnostics.EventLog/7.0.0" />
17-
<UsagePattern IdentityGlob="System.Security.Cryptography.ProtectedData/7.0.0" />
14+
<UsagePattern IdentityGlob="System.Configuration.ConfigurationManager/8.0.0" />
15+
<UsagePattern IdentityGlob="System.Diagnostics.EventLog/8.0.0" />
16+
<UsagePattern IdentityGlob="System.Security.Cryptography.ProtectedData/8.0.0" />
17+
<UsagePattern IdentityGlob="System.CodeDom/8.0.0" />
18+
<UsagePattern IdentityGlob="System.Resources.Extensions/8.0.0" />
19+
<UsagePattern IdentityGlob="System.Diagnostics.DiagnosticSource/8.0.0" />
1820

1921
<UsagePattern IdentityGlob="Microsoft.AspNetCore.App.Runtime.linux-x64/8.0.*" />
2022
<UsagePattern IdentityGlob="Microsoft.NETCore.App.Crossgen2.linux-x64/8.0.*" />
2123
<UsagePattern IdentityGlob="Microsoft.NETCore.App.Runtime.linux-x64/8.0.*" />
2224

23-
2425
<!-- Tracked in https://github.com/dotnet/source-build/issues/3438 -->
2526
<UsagePattern IdentityGlob="Microsoft.VisualStudio.Setup.Configuration.Interop/3.2.2146" />
2627
</IgnorePatterns>

eng/Version.Details.xml

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,44 @@
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.24267.2">
4+
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.24352.1">
55
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
6-
<Sha>4642f9b75b588565642dd00dabcfedfe67ca106f</Sha>
6+
<Sha>cc732c57199f725857c201da146525e3be6bc504</Sha>
77
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
88
</Dependency>
99
<!-- Intermediate is necessary for source build. -->
10-
<Dependency Name="Microsoft.SourceBuild.Intermediate.msbuild" Version="17.7.0-preview-23217-02">
10+
<Dependency Name="Microsoft.SourceBuild.Intermediate.msbuild" Version="17.11.0-preview-24178-03">
1111
<Uri>https://github.com/dotnet/msbuild</Uri>
12-
<Sha>2cbc8b6aef648cf21c6a68a0dab7fe09a614e475</Sha>
12+
<Sha>2d02daa886f279e2ee749cad03db4b1b75bb9adb</Sha>
1313
<SourceBuild RepoName="msbuild" ManagedOnly="true" />
1414
</Dependency>
15-
<Dependency Name="Microsoft.Build" Version="17.7.0-preview-23217-02">
15+
<Dependency Name="Microsoft.Build" Version="17.11.0-preview-24178-03">
1616
<Uri>https://github.com/dotnet/msbuild</Uri>
17-
<Sha>2cbc8b6aef648cf21c6a68a0dab7fe09a614e475</Sha>
17+
<Sha>2d02daa886f279e2ee749cad03db4b1b75bb9adb</Sha>
1818
</Dependency>
19-
<Dependency Name="Microsoft.Build.Framework" Version="17.7.0-preview-23217-02">
19+
<Dependency Name="Microsoft.Build.Framework" Version="17.11.0-preview-24178-03">
2020
<Uri>https://github.com/dotnet/msbuild</Uri>
21-
<Sha>2cbc8b6aef648cf21c6a68a0dab7fe09a614e475</Sha>
21+
<Sha>2d02daa886f279e2ee749cad03db4b1b75bb9adb</Sha>
2222
</Dependency>
23-
<Dependency Name="Microsoft.Build.Tasks.Core" Version="17.7.0-preview-23217-02">
23+
<Dependency Name="Microsoft.Build.Tasks.Core" Version="17.11.0-preview-24178-03">
2424
<Uri>https://github.com/dotnet/msbuild</Uri>
25-
<Sha>2cbc8b6aef648cf21c6a68a0dab7fe09a614e475</Sha>
25+
<Sha>2d02daa886f279e2ee749cad03db4b1b75bb9adb</Sha>
2626
</Dependency>
27-
<Dependency Name="Microsoft.Build.Utilities.Core" Version="17.7.0-preview-23217-02">
27+
<Dependency Name="Microsoft.Build.Utilities.Core" Version="17.11.0-preview-24178-03">
2828
<Uri>https://github.com/dotnet/msbuild</Uri>
29-
<Sha>2cbc8b6aef648cf21c6a68a0dab7fe09a614e475</Sha>
29+
<Sha>2d02daa886f279e2ee749cad03db4b1b75bb9adb</Sha>
30+
</Dependency>
31+
<Dependency Name="System.Reflection.Metadata" Version="8.0.0">
32+
<Uri>https://github.com/dotnet/runtime</Uri>
33+
<Sha>5535e31a712343a63f5d7d796cd874e563e5ac14</Sha>
34+
</Dependency>
35+
<Dependency Name="System.Collections.Immutable" Version="8.0.0">
36+
<Uri>https://github.com/dotnet/runtime</Uri>
37+
<Sha>5535e31a712343a63f5d7d796cd874e563e5ac14</Sha>
38+
</Dependency>
39+
<Dependency Name="System.Threading.Tasks.Dataflow" Version="8.0.0">
40+
<Uri>https://github.com/dotnet/runtime</Uri>
41+
<Sha>5535e31a712343a63f5d7d796cd874e563e5ac14</Sha>
3042
</Dependency>
3143
</ProductDependencies>
3244
<ToolsetDependencies>

0 commit comments

Comments
 (0)