=== tests/cases/conformance/interfaces/declarationMerging/mergeTwoInterfaces.ts === // two interfaces with the same root module should merge // basic case interface A { >A : A, Symbol(A, Decl(mergeTwoInterfaces.ts, 0, 0), Decl(mergeTwoInterfaces.ts, 5, 1)) foo: string; >foo : string, Symbol(foo, Decl(mergeTwoInterfaces.ts, 3, 13)) } interface A { >A : A, Symbol(A, Decl(mergeTwoInterfaces.ts, 0, 0), Decl(mergeTwoInterfaces.ts, 5, 1)) bar: number; >bar : number, Symbol(bar, Decl(mergeTwoInterfaces.ts, 7, 13)) } var a: A; >a : A, Symbol(a, Decl(mergeTwoInterfaces.ts, 11, 3)) >A : A, Symbol(A, Decl(mergeTwoInterfaces.ts, 0, 0), Decl(mergeTwoInterfaces.ts, 5, 1)) var r1 = a.foo >r1 : string, Symbol(r1, Decl(mergeTwoInterfaces.ts, 12, 3)) >a.foo : string, Symbol(A.foo, Decl(mergeTwoInterfaces.ts, 3, 13)) >a : A, Symbol(a, Decl(mergeTwoInterfaces.ts, 11, 3)) >foo : string, Symbol(A.foo, Decl(mergeTwoInterfaces.ts, 3, 13)) var r2 = a.bar; >r2 : number, Symbol(r2, Decl(mergeTwoInterfaces.ts, 13, 3)) >a.bar : number, Symbol(A.bar, Decl(mergeTwoInterfaces.ts, 7, 13)) >a : A, Symbol(a, Decl(mergeTwoInterfaces.ts, 11, 3)) >bar : number, Symbol(A.bar, Decl(mergeTwoInterfaces.ts, 7, 13)) // basic generic case interface B { >B : B, Symbol(B, Decl(mergeTwoInterfaces.ts, 13, 15), Decl(mergeTwoInterfaces.ts, 19, 1)) >T : T, Symbol(T, Decl(mergeTwoInterfaces.ts, 16, 12), Decl(mergeTwoInterfaces.ts, 21, 12)) baz: string; >baz : string, Symbol(baz, Decl(mergeTwoInterfaces.ts, 16, 16)) foo: T; >foo : T, Symbol(foo, Decl(mergeTwoInterfaces.ts, 17, 16)) >T : T, Symbol(T, Decl(mergeTwoInterfaces.ts, 16, 12), Decl(mergeTwoInterfaces.ts, 21, 12)) } interface B { >B : B, Symbol(B, Decl(mergeTwoInterfaces.ts, 13, 15), Decl(mergeTwoInterfaces.ts, 19, 1)) >T : T, Symbol(T, Decl(mergeTwoInterfaces.ts, 16, 12), Decl(mergeTwoInterfaces.ts, 21, 12)) bar: T; >bar : T, Symbol(bar, Decl(mergeTwoInterfaces.ts, 21, 16)) >T : T, Symbol(T, Decl(mergeTwoInterfaces.ts, 16, 12), Decl(mergeTwoInterfaces.ts, 21, 12)) } var b: B; >b : B, Symbol(b, Decl(mergeTwoInterfaces.ts, 25, 3)) >B : B, Symbol(B, Decl(mergeTwoInterfaces.ts, 13, 15), Decl(mergeTwoInterfaces.ts, 19, 1)) var r3 = b.foo >r3 : string, Symbol(r3, Decl(mergeTwoInterfaces.ts, 26, 3)) >b.foo : string, Symbol(B.foo, Decl(mergeTwoInterfaces.ts, 17, 16)) >b : B, Symbol(b, Decl(mergeTwoInterfaces.ts, 25, 3)) >foo : string, Symbol(B.foo, Decl(mergeTwoInterfaces.ts, 17, 16)) var r4 = b.bar; >r4 : string, Symbol(r4, Decl(mergeTwoInterfaces.ts, 27, 3)) >b.bar : string, Symbol(B.bar, Decl(mergeTwoInterfaces.ts, 21, 16)) >b : B, Symbol(b, Decl(mergeTwoInterfaces.ts, 25, 3)) >bar : string, Symbol(B.bar, Decl(mergeTwoInterfaces.ts, 21, 16)) // basic non-generic and generic case inside a module module M { >M : typeof M, Symbol(M, Decl(mergeTwoInterfaces.ts, 27, 15)) interface A { >A : A, Symbol(A, Decl(mergeTwoInterfaces.ts, 30, 10), Decl(mergeTwoInterfaces.ts, 33, 5)) foo: string; >foo : string, Symbol(foo, Decl(mergeTwoInterfaces.ts, 31, 17)) } interface A { >A : A, Symbol(A, Decl(mergeTwoInterfaces.ts, 30, 10), Decl(mergeTwoInterfaces.ts, 33, 5)) bar: number; >bar : number, Symbol(bar, Decl(mergeTwoInterfaces.ts, 35, 17)) } var a: A; >a : A, Symbol(a, Decl(mergeTwoInterfaces.ts, 39, 7)) >A : A, Symbol(A, Decl(mergeTwoInterfaces.ts, 30, 10), Decl(mergeTwoInterfaces.ts, 33, 5)) var r1 = a.foo; >r1 : string, Symbol(r1, Decl(mergeTwoInterfaces.ts, 40, 7)) >a.foo : string, Symbol(A.foo, Decl(mergeTwoInterfaces.ts, 31, 17)) >a : A, Symbol(a, Decl(mergeTwoInterfaces.ts, 39, 7)) >foo : string, Symbol(A.foo, Decl(mergeTwoInterfaces.ts, 31, 17)) // BUG 856491 var r2 = a.bar; // any, should be number >r2 : number, Symbol(r2, Decl(mergeTwoInterfaces.ts, 42, 7)) >a.bar : number, Symbol(A.bar, Decl(mergeTwoInterfaces.ts, 35, 17)) >a : A, Symbol(a, Decl(mergeTwoInterfaces.ts, 39, 7)) >bar : number, Symbol(A.bar, Decl(mergeTwoInterfaces.ts, 35, 17)) interface B { >B : B, Symbol(B, Decl(mergeTwoInterfaces.ts, 42, 19), Decl(mergeTwoInterfaces.ts, 46, 5)) >T : T, Symbol(T, Decl(mergeTwoInterfaces.ts, 44, 16), Decl(mergeTwoInterfaces.ts, 48, 16)) foo: T; >foo : T, Symbol(foo, Decl(mergeTwoInterfaces.ts, 44, 20)) >T : T, Symbol(T, Decl(mergeTwoInterfaces.ts, 44, 16), Decl(mergeTwoInterfaces.ts, 48, 16)) } interface B { >B : B, Symbol(B, Decl(mergeTwoInterfaces.ts, 42, 19), Decl(mergeTwoInterfaces.ts, 46, 5)) >T : T, Symbol(T, Decl(mergeTwoInterfaces.ts, 44, 16), Decl(mergeTwoInterfaces.ts, 48, 16)) bar: T; >bar : T, Symbol(bar, Decl(mergeTwoInterfaces.ts, 48, 20)) >T : T, Symbol(T, Decl(mergeTwoInterfaces.ts, 44, 16), Decl(mergeTwoInterfaces.ts, 48, 16)) } var b: B; >b : B, Symbol(b, Decl(mergeTwoInterfaces.ts, 52, 7)) >B : B, Symbol(B, Decl(mergeTwoInterfaces.ts, 42, 19), Decl(mergeTwoInterfaces.ts, 46, 5)) var r3 = b.foo >r3 : string, Symbol(r3, Decl(mergeTwoInterfaces.ts, 53, 7)) >b.foo : string, Symbol(B.foo, Decl(mergeTwoInterfaces.ts, 44, 20)) >b : B, Symbol(b, Decl(mergeTwoInterfaces.ts, 52, 7)) >foo : string, Symbol(B.foo, Decl(mergeTwoInterfaces.ts, 44, 20)) // BUG 856491 var r4 = b.bar; // any, should be string >r4 : string, Symbol(r4, Decl(mergeTwoInterfaces.ts, 55, 7)) >b.bar : string, Symbol(B.bar, Decl(mergeTwoInterfaces.ts, 48, 20)) >b : B, Symbol(b, Decl(mergeTwoInterfaces.ts, 52, 7)) >bar : string, Symbol(B.bar, Decl(mergeTwoInterfaces.ts, 48, 20)) }