Hi

On 1/29/25 20:31, Rob Landers wrote:
This looks promising!

Why do we need the (void) cast? Wouldn't "@" work and avoid a BC issue?

The `@` operator also suppresses any other warning or notice within the call chain. That is likely undesirable because it might hide issues one is interested in. See this example (https://3v4l.org/NDtR7):

    <?php
    function inner() {
        var_dump($undefined);
    }

    function outer() {
        inner();
    }

    outer();
    outer();
    @outer();

The `(void)` cast makes the intent of not being interested in the return value clear. In C casting to `(void)` is an established pattern of "using" a value that the compiler would otherwise consider unused. Likewise will the `void` operator suppress the TypeScript-ESLint warning of not using returned `Promise`: https://typescript-eslint.io/rules/no-floating-promises/#ignorevoid

Best regards
Tim Düsterhus

Reply via email to