-
Notifications
You must be signed in to change notification settings - Fork 850
Open
Labels
Area-NullnessIssues related to handling of Nullable Reference TypesIssues related to handling of Nullable Reference TypesBugTriage-Investigate
Milestone
Description
Issue description
A specific scenario is broken by enabling nullness checking, manifesting as FS0001.
Choose one or more from the following categories of impact
- Unexpected nullness warning (false positive in nullness checking, code uses --checknulls and langversion:preview).
- Missing nullness warning in a case which can produce nulls (false negative, code uses --checknulls and langversion:preview).
- Breaking change related to older
nullconstructs in code not using the checknulls switch. - Breaking change related to generic code and explicit type constraints (
null,not null). - Type inference issue (i.e. code worked without type annotations before, and applying the --checknulls enforces type annotations).
- C#/F# interop issue related to nullness metadata.
- Other (none of the categories above apply).
Operating System
Windows (Default)
What .NET runtime/SDK kind are you seeing the issue on
.NET SDK (.NET Core, .NET 5+)
.NET Runtime/SDK version
.NET 9
Reproducible code snippet and actual behavior
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net9.0</TargetFramework>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<Compile Include="Program.fs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="FSharpPlus" Version="1.6.1" />
</ItemGroup>
</Project>open FSharpPlus
let parseInt () : Result<int, string> =
Ok 42
type SomeRecordWrapper = {
Value: int
}
let repro () =
let result =
monad {
let! parsed = parseInt ()
return {
Value = parsed
}
}
match result with
| Ok _ ->
()
| Error _ ->
()With Nullable enabled, this results in:
0>Program.fs(20,7): Error FS0001 : '.Delay' does not support the type 'Result<SomeRecordWrapper,'a>', because the latter lacks the required (real or built-in) member 'Delay'
0>Program.fs(19,11): Warning FS0025 : Incomplete pattern matches on this expression.
With Nullable disabled, the code compiles fine.
Possible workarounds
None that I know of.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Area-NullnessIssues related to handling of Nullable Reference TypesIssues related to handling of Nullable Reference TypesBugTriage-Investigate
Type
Projects
Status
New