tests/cases/conformance/expressions/nullishCoalescingOperator/nullishCoalescingOperator5.ts(6,6): error TS5076: '||' and '??' operations cannot be mixed without parentheses.
tests/cases/conformance/expressions/nullishCoalescingOperator/nullishCoalescingOperator5.ts(9,1): error TS5076: '||' and '??' operations cannot be mixed without parentheses.
tests/cases/conformance/expressions/nullishCoalescingOperator/nullishCoalescingOperator5.ts(12,6): error TS5076: '&&' and '??' operations cannot be mixed without parentheses.
tests/cases/conformance/expressions/nullishCoalescingOperator/nullishCoalescingOperator5.ts(15,1): error TS5076: '&&' and '??' operations cannot be mixed without parentheses.


==== tests/cases/conformance/expressions/nullishCoalescingOperator/nullishCoalescingOperator5.ts (4 errors) ====
    declare const a: string | undefined
    declare const b: string | undefined
    declare const c: string | undefined
    
    // should be a syntax error
    a ?? b || c;
         ~~~~~~
!!! error TS5076: '||' and '??' operations cannot be mixed without parentheses.
    
    // should be a syntax error
    a || b ?? c;
    ~~~~~~
!!! error TS5076: '||' and '??' operations cannot be mixed without parentheses.
    
    // should be a syntax error
    a ?? b && c;
         ~~~~~~
!!! error TS5076: '&&' and '??' operations cannot be mixed without parentheses.
    
    // should be a syntax error
    a && b ?? c;
    ~~~~~~
!!! error TS5076: '&&' and '??' operations cannot be mixed without parentheses.
    
    // Valid according to spec
    a ?? (b || c);
    
    // Valid according to spec
    (a ?? b) || c;
    
    // Valid according to spec
    (a || b) ?? c;
    
    // Valid according to spec
    a || (b ?? c);
    
    // Valid according to spec
    a ?? (b && c);
    
    // Valid according to spec
    (a ?? b) && c;
    
    // Valid according to spec
    (a && b) ?? c;
    
    // Valid according to spec
    a && (b ?? c);
    