dotnet/roslyn

Got a false CS8602 warnning when use Null-conditional operator and Null-coalescing opreator in expression

Open

#78.432 aberto em 3 de mai. de 2025

Ver no GitHub
 (2 comments) (0 reactions) (0 assignees)C# (4.257 forks)batch import
Area-CompilersBugFeature - Nullable Reference Typeshelp wanted

Métricas do repositório

Stars
 (20.414 stars)
Métricas de merge de PR
 (Mesclagem média 6d 17h) (256 fundiu PRs em 30d)

Description

Version Used:

  • csc.dll: 4.13.0-3.25155.17+398aa319196d4684c751a3d7c75c847e519a393c
  • .NET SDK: 9.0.203-dc7acfa194

Steps to Reproduce:

  1. Compile follow code
  2. Got a false CS8602 warnning

Sharplab

using System;

AnotherTestClass? anotherTestClass = null;
if (!anotherTestClass?.IsTrue ?? false)
{
    // CS8602 at `anotherTestClass`
    Console.WriteLine(anotherTestClass.IsTrue
        ? "Cancellation requested"
        : "Cancellation not requested");
}
Console.WriteLine("Test method ended");

class AnotherTestClass
{
    public bool IsTrue = false;
}

Diagnostic Id:

CS8602: Dereference of a possibly null reference.

Expected Behavior:

No warnning

Actual Behavior:

Got a falseCS8602 warnning

Guia do colaborador