=== tests/cases/compiler/errorMessagesIntersectionTypes03.ts ===
interface A {
>A : Symbol(A, Decl(errorMessagesIntersectionTypes03.ts, 0, 0))

    a;
>a : Symbol(A.a, Decl(errorMessagesIntersectionTypes03.ts, 0, 13))
}

interface B {
>B : Symbol(B, Decl(errorMessagesIntersectionTypes03.ts, 2, 1))

    b;
>b : Symbol(B.b, Decl(errorMessagesIntersectionTypes03.ts, 4, 13))
}

function f<T, U extends A, V extends U>(): void {
>f : Symbol(f, Decl(errorMessagesIntersectionTypes03.ts, 6, 1))
>T : Symbol(T, Decl(errorMessagesIntersectionTypes03.ts, 8, 11))
>U : Symbol(U, Decl(errorMessagesIntersectionTypes03.ts, 8, 13))
>A : Symbol(A, Decl(errorMessagesIntersectionTypes03.ts, 0, 0))
>V : Symbol(V, Decl(errorMessagesIntersectionTypes03.ts, 8, 26))
>U : Symbol(U, Decl(errorMessagesIntersectionTypes03.ts, 8, 13))

    let t: T;
>t : Symbol(t, Decl(errorMessagesIntersectionTypes03.ts, 9, 7))
>T : Symbol(T, Decl(errorMessagesIntersectionTypes03.ts, 8, 11))

    let u: U;
>u : Symbol(u, Decl(errorMessagesIntersectionTypes03.ts, 10, 7))
>U : Symbol(U, Decl(errorMessagesIntersectionTypes03.ts, 8, 13))

    let v: V;
>v : Symbol(v, Decl(errorMessagesIntersectionTypes03.ts, 11, 7))
>V : Symbol(V, Decl(errorMessagesIntersectionTypes03.ts, 8, 26))

    let a_and_b: A & B;
>a_and_b : Symbol(a_and_b, Decl(errorMessagesIntersectionTypes03.ts, 13, 7))
>A : Symbol(A, Decl(errorMessagesIntersectionTypes03.ts, 0, 0))
>B : Symbol(B, Decl(errorMessagesIntersectionTypes03.ts, 2, 1))

    let t_and_b: T & B;
>t_and_b : Symbol(t_and_b, Decl(errorMessagesIntersectionTypes03.ts, 14, 7))
>T : Symbol(T, Decl(errorMessagesIntersectionTypes03.ts, 8, 11))
>B : Symbol(B, Decl(errorMessagesIntersectionTypes03.ts, 2, 1))

    t = a_and_b;
>t : Symbol(t, Decl(errorMessagesIntersectionTypes03.ts, 9, 7))
>a_and_b : Symbol(a_and_b, Decl(errorMessagesIntersectionTypes03.ts, 13, 7))

    u = a_and_b;
>u : Symbol(u, Decl(errorMessagesIntersectionTypes03.ts, 10, 7))
>a_and_b : Symbol(a_and_b, Decl(errorMessagesIntersectionTypes03.ts, 13, 7))

    v = a_and_b;
>v : Symbol(v, Decl(errorMessagesIntersectionTypes03.ts, 11, 7))
>a_and_b : Symbol(a_and_b, Decl(errorMessagesIntersectionTypes03.ts, 13, 7))

    t = t_and_b;
>t : Symbol(t, Decl(errorMessagesIntersectionTypes03.ts, 9, 7))
>t_and_b : Symbol(t_and_b, Decl(errorMessagesIntersectionTypes03.ts, 14, 7))

    u = t_and_b;
>u : Symbol(u, Decl(errorMessagesIntersectionTypes03.ts, 10, 7))
>t_and_b : Symbol(t_and_b, Decl(errorMessagesIntersectionTypes03.ts, 14, 7))

    v = t_and_b;
>v : Symbol(v, Decl(errorMessagesIntersectionTypes03.ts, 11, 7))
>t_and_b : Symbol(t_and_b, Decl(errorMessagesIntersectionTypes03.ts, 14, 7))
}
