dotnet/roslyn

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

开放

#78,432 创建于 2025年5月3日

 (2 条评论) (0 个反应) (0 位负责人)C# (4,257 个派生)batch import
Area-CompilersBugFeature - Nullable Reference Typeshelp wanted

仓库指标

星标
 (20,414 个星标)
PR 合并指标
 (PR 指标待抓取)

描述

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

贡献者指南