=== tests/cases/conformance/types/typeRelationships/bestCommonType/bestCommonTypeOfTuple2.ts === interface base { } >base : Symbol(base, Decl(bestCommonTypeOfTuple2.ts, 0, 0)) interface base1 { i } >base1 : Symbol(base1, Decl(bestCommonTypeOfTuple2.ts, 0, 18)) >i : Symbol(i, Decl(bestCommonTypeOfTuple2.ts, 1, 17)) class C implements base { c } >C : Symbol(C, Decl(bestCommonTypeOfTuple2.ts, 1, 21)) >base : Symbol(base, Decl(bestCommonTypeOfTuple2.ts, 0, 0)) >c : Symbol(c, Decl(bestCommonTypeOfTuple2.ts, 2, 25)) class D implements base { d } >D : Symbol(D, Decl(bestCommonTypeOfTuple2.ts, 2, 29)) >base : Symbol(base, Decl(bestCommonTypeOfTuple2.ts, 0, 0)) >d : Symbol(d, Decl(bestCommonTypeOfTuple2.ts, 3, 25)) class E implements base { e } >E : Symbol(E, Decl(bestCommonTypeOfTuple2.ts, 3, 29)) >base : Symbol(base, Decl(bestCommonTypeOfTuple2.ts, 0, 0)) >e : Symbol(e, Decl(bestCommonTypeOfTuple2.ts, 4, 25)) class F extends C { f } >F : Symbol(F, Decl(bestCommonTypeOfTuple2.ts, 4, 29)) >C : Symbol(C, Decl(bestCommonTypeOfTuple2.ts, 1, 21)) >f : Symbol(f, Decl(bestCommonTypeOfTuple2.ts, 5, 19)) class C1 implements base1 { i = "foo"; c } >C1 : Symbol(C1, Decl(bestCommonTypeOfTuple2.ts, 5, 23)) >base1 : Symbol(base1, Decl(bestCommonTypeOfTuple2.ts, 0, 18)) >i : Symbol(i, Decl(bestCommonTypeOfTuple2.ts, 7, 27)) >c : Symbol(c, Decl(bestCommonTypeOfTuple2.ts, 7, 38)) class D1 extends C1 { i = "bar"; d } >D1 : Symbol(D1, Decl(bestCommonTypeOfTuple2.ts, 7, 42)) >C1 : Symbol(C1, Decl(bestCommonTypeOfTuple2.ts, 5, 23)) >i : Symbol(i, Decl(bestCommonTypeOfTuple2.ts, 8, 21)) >d : Symbol(d, Decl(bestCommonTypeOfTuple2.ts, 8, 32)) var t1: [C, base]; >t1 : Symbol(t1, Decl(bestCommonTypeOfTuple2.ts, 10, 3)) >C : Symbol(C, Decl(bestCommonTypeOfTuple2.ts, 1, 21)) >base : Symbol(base, Decl(bestCommonTypeOfTuple2.ts, 0, 0)) var t2: [C, D]; >t2 : Symbol(t2, Decl(bestCommonTypeOfTuple2.ts, 11, 3)) >C : Symbol(C, Decl(bestCommonTypeOfTuple2.ts, 1, 21)) >D : Symbol(D, Decl(bestCommonTypeOfTuple2.ts, 2, 29)) var t3: [C1, D1]; >t3 : Symbol(t3, Decl(bestCommonTypeOfTuple2.ts, 12, 3)) >C1 : Symbol(C1, Decl(bestCommonTypeOfTuple2.ts, 5, 23)) >D1 : Symbol(D1, Decl(bestCommonTypeOfTuple2.ts, 7, 42)) var t4: [base1, C1]; >t4 : Symbol(t4, Decl(bestCommonTypeOfTuple2.ts, 13, 3)) >base1 : Symbol(base1, Decl(bestCommonTypeOfTuple2.ts, 0, 18)) >C1 : Symbol(C1, Decl(bestCommonTypeOfTuple2.ts, 5, 23)) var t5: [C1, F] >t5 : Symbol(t5, Decl(bestCommonTypeOfTuple2.ts, 14, 3)) >C1 : Symbol(C1, Decl(bestCommonTypeOfTuple2.ts, 5, 23)) >F : Symbol(F, Decl(bestCommonTypeOfTuple2.ts, 4, 29)) var e11 = t1[4]; // base >e11 : Symbol(e11, Decl(bestCommonTypeOfTuple2.ts, 16, 3)) >t1 : Symbol(t1, Decl(bestCommonTypeOfTuple2.ts, 10, 3)) var e21 = t2[4]; // {} >e21 : Symbol(e21, Decl(bestCommonTypeOfTuple2.ts, 17, 3)) >t2 : Symbol(t2, Decl(bestCommonTypeOfTuple2.ts, 11, 3)) var e31 = t3[4]; // C1 >e31 : Symbol(e31, Decl(bestCommonTypeOfTuple2.ts, 18, 3)) >t3 : Symbol(t3, Decl(bestCommonTypeOfTuple2.ts, 12, 3)) var e41 = t4[2]; // base1 >e41 : Symbol(e41, Decl(bestCommonTypeOfTuple2.ts, 19, 3)) >t4 : Symbol(t4, Decl(bestCommonTypeOfTuple2.ts, 13, 3)) var e51 = t5[2]; // {} >e51 : Symbol(e51, Decl(bestCommonTypeOfTuple2.ts, 20, 3)) >t5 : Symbol(t5, Decl(bestCommonTypeOfTuple2.ts, 14, 3))