Issue description
Compiler doesn't warn when parameter in signature file is marked as nullable but implementation is non-nullable. Opposite is also true - parameter in signature file can be non-nullable while parameter in implementation is.
I would expect to get a warning at least in first situation. Second case is more of "nice to have" category and reminds of FS3261: The type X does not support null.
Choose one or more from the following categories of impact
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
9.0.100
Reproducible code snippet and actual behavior
Module1.fsi:
module Library1.Module1
val test1: string | null -> unit
val test2: string -> unit
Module1.fs:
module Library1.Module1
let test1 (x: string) = ()
let test2 (x: string | null) = ()
Project example
Possible workarounds
.
Issue description
Compiler doesn't warn when parameter in signature file is marked as nullable but implementation is non-nullable. Opposite is also true - parameter in signature file can be non-nullable while parameter in implementation is.
I would expect to get a warning at least in first situation. Second case is more of "nice to have" category and reminds of
FS3261: The type X does not support null.Choose one or more from the following categories of impact
nullconstructs in code not using the checknulls switch.null,not null).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
9.0.100
Reproducible code snippet and actual behavior
Module1.fsi:
Module1.fs:
Project example
Possible workarounds
.