Merge pull request #17491 from dotnet/merges/main-to-release/dev17.12

Merge main to release/dev17.12
This commit is contained in:
Petr 2024-08-06 13:52:01 +02:00 коммит произвёл GitHub
Родитель 2f691266f6 9ee928238e
Коммит 24116f01e5
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
2 изменённых файлов: 13 добавлений и 1 удалений

Просмотреть файл

@ -1101,7 +1101,7 @@ and SolveNullnessSubsumesNullness (csenv: ConstraintSolverEnv) m2 (trace: Option
| NullnessInfo.WithNull, NullnessInfo.WithoutNull ->
CompleteD
| NullnessInfo.WithoutNull, NullnessInfo.WithNull ->
if csenv.g.checkNullness then
if csenv.g.checkNullness && not csenv.IsSpeculativeForMethodOverloading then
WarnD(ConstraintSolverNullnessWarningWithTypes(csenv.DisplayEnv, ty1, ty2, n1, n2, csenv.m, m2))
else
CompleteD

Просмотреть файл

@ -15,6 +15,18 @@ let typeCheckWithStrictNullness cu =
cu
|> withNullnessOptions
|> typecheck
[<Fact>]
let ``Does not duplicate warnings`` () =
FSharp """
module MyLib
let getLength (x: string | null) = x.Length
"""
|> asLibrary
|> typeCheckWithStrictNullness
|> shouldFail
|> withDiagnostics [Error 3261, Line 3, Col 36, Line 3, Col 44, "Nullness warning: The types 'string' and 'string | null' do not have compatible nullability."]
[<Fact>]
let ``Cannot pass possibly null value to a strict function``() =