dotnet/roslyn

Nullability warning is missing on the lock statement

Open

#76.597 aperta il 2 gen 2025

Vedi su GitHub
 (1 commento) (0 reazioni) (0 assegnatari)C# (4257 fork)batch import
Area-CompilersFeature - Nullable Reference Typeshelp wanted

Metriche repository

Star
 (20.414 star)
Metriche merge PR
 (Merge medio 6g 17h) (256 PR mergiate in 30 g)

Descrizione

Version Used: 17.13.0 Preview 2.1

There is no nullability warning for lock (null) { } or lock (maybeNullExpr) { }, even though a null at runtime throws ArgumentNullException.

Expected

A nullability warning such as:

  • CS8604 - Possible null reference argument for parameter.

    • More literal, similar to how await or foreach simply reflect the warning you'd get if you had manually called GetAwaiter()/GetEnumerator().
  • CS8602 - Dereference of a possibly null reference.

    • A step back, if calling expr in lock (expr) a "parameter" is leaking too much information about how lock is being lowered.

Or, one in the same vein as "CS8597 Thrown value may be null."

Guida contributor