Skip to content

CMTK0003 misses Wait() on a ?:, ?? or switch of Result tasks #160

Closed

Description

@CaffeinatedCoder

Found by the variant sweep of CMTK0003 before 2.3.0 (Variants/DroppedTaskShapes, the use "waited for with Wait()").

Problem

Wait() on a ?:, ?? or switch expression of tasks of results compiles with no CMTK0003, while the same expression dropped, awaited or converted to a plain Task reports each branch's call:

(dry ? orders.CancelAsync(id) : orders.ShipAsync(id)).WaitAsync(t).Wait();   // no diagnostic
(held ?? orders.CancelAsync(id)).WaitAsync(t).Wait();                         // no diagnostic
await (dry ? orders.CancelAsync(id) : orders.ShipAsync(id)).WaitAsync(t);     // CMTK0003 at each call

Cause

AnalyzeWait takes the one call PassedOn finds under the Wait, and a branch is no call, so it reports nothing. The other paths go through Producers, which enumerates the branches.

Release

2.2.0 code can contain the form. It ships in 2.3.0 under decision 0119 (a gap found before the tag ships in that release), in the PR for #152, #157 and #159.

Activity

  1. added this to the 2.3.0 milestone on Oct 29, 2026
  2. added
    bugSomething isn't working
    silentCompiles or answers and does less than it appears to
    severity/lowCosmetic, message or documentation-level difference
    package/analyzersAffects CodoMetis.TypeKit.Analyzers
    on Oct 29, 2026
  3. CaffeinatedCoder commented on Oct 29, 2026

    @CaffeinatedCoder
    OwnerAuthor

    Fixed in #164 (into release/2.3.0), held by DroppedTaskVariantTests over Variants/DroppedTaskShapes and seeded. The Analyzers README and the changelog say what 2.3.0 reports; 2.2-writable forms ship under decision 0119.

  4. CaffeinatedCoder commented on Oct 29, 2026

    @CaffeinatedCoder
    OwnerAuthor

    Fixed in #164, merged into release/2.3.0 (9878a6c).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area/option-resultOption, Result and their extensionsbugSomething isn't workingpackage/analyzersAffects CodoMetis.TypeKit.Analyzersseverity/lowCosmetic, message or documentation-level differencesilentCompiles or answers and does less than it appears to

    Projects

    No projects

      Milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions