Verse VS Code: False Diagnostic Errors

Summary

False diagnostics appear in many places across the Verse API in VSCode, specifically related to listenable types and input_action types. In some cases this causes our own .verse files to be treated as if they contained errors.
I know this has been a problem for a long time, but recently it became much worse.

Please select what you are reporting on:

Verse

What Type of Bug are you experiencing?

Verse

Steps to Reproduce

The source of problem is generated Verse.digest.verse file but here’s an example of how it spreads to our own .verse files:

(Entity:entity).CallOnEntityEntered(Callback:type{_(:entity):void})<suspends>:void =
    if (MeshComponent := Entity.GetComponent[mesh_component]):
        loop:
            InEntity := VolumeMesh.EntityEnteredEvent.Await()
            Callback(InEntity)

Expected Result

No diagnostic errors in VS Code. The signature for EntityEnteredEvent should resolve correctly and .Await() should be recognized as a valid async expression.

Observed Result

False positive error:
To prevent infinite immediate iteration, loop must have one or more subexpressions that are either async (such as a coroutine) or a jump out (such as break or return). (3579)

Platform(s)

PC

FORT-1108579 has been created and its status is ‘Unconfirmed’. This is now in a queue to be reproduced and confirmed.