tests/cases/compiler/truthinessPromiseCoercion.ts(5,9): error TS2367: This condition will always return 'true' since the types 'Promise<number>' and 'false' have no overlap.
tests/cases/compiler/truthinessPromiseCoercion.ts(9,5): error TS2367: This condition will always return 'true' since the types 'Promise<number>' and 'false' have no overlap.


==== tests/cases/compiler/truthinessPromiseCoercion.ts (2 errors) ====
    declare const p: Promise<number>
    declare const p2: null | Promise<number>
    
    async function f() {
        if (p) {} // err
            ~
!!! error TS2367: This condition will always return 'true' since the types 'Promise<number>' and 'false' have no overlap.
!!! related TS2773 tests/cases/compiler/truthinessPromiseCoercion.ts:5:9: Did you forget to use 'await'?
        if (!!p) {} // no err
        if (p2) {} // no err
    
        p ? f.arguments : f.arguments;
        ~
!!! error TS2367: This condition will always return 'true' since the types 'Promise<number>' and 'false' have no overlap.
!!! related TS2773 tests/cases/compiler/truthinessPromiseCoercion.ts:9:5: Did you forget to use 'await'?
        !!p ? f.arguments : f.arguments;
        p2 ? f.arguments : f.arguments;
    }
    