=== tests/cases/compiler/overloadBindingAcrossDeclarationBoundaries.ts === interface Opt1 { >Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) p?: any; >p : Symbol(p, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 16)) } interface Opt2 { >Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) q?: any; >q : Symbol(q, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 3, 16)) } interface Opt3 { >Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) r?: any; >r : Symbol(r, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 6, 16)) } interface Opt4 { >Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) s?: any; >s : Symbol(s, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 9, 16)) } interface A { >A : Symbol(A, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 11, 1), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 19, 1)) a(o: Opt1): Opt1; >a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) >o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 6)) >Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) >Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) a(o: Opt2): Opt2; >a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) >o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 14, 6)) >Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) >Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) (o: Opt1): Opt1; >o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 15, 5)) >Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) >Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) (o: Opt2): Opt2; >o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 16, 5)) >Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) >Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) new (o: Opt1): Opt1; >o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 17, 9)) >Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) >Opt1 : Symbol(Opt1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 0, 0)) new (o: Opt2): Opt2; >o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 18, 9)) >Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) >Opt2 : Symbol(Opt2, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 2, 1)) } interface A { >A : Symbol(A, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 11, 1), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 19, 1)) a(o: Opt3): Opt3; >a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) >o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 6)) >Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) >Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) a(o: Opt4): Opt4; >a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) >o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 22, 6)) >Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) >Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) (o: Opt3): Opt3; >o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 23, 5)) >Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) >Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) (o: Opt4): Opt4; >o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 24, 5)) >Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) >Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) new (o: Opt3): Opt3; >o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 25, 9)) >Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) >Opt3 : Symbol(Opt3, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 5, 1)) new (o: Opt4): Opt4; >o : Symbol(o, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 26, 9)) >Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) >Opt4 : Symbol(Opt4, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 8, 1)) } var a: A; >a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 29, 3)) >A : Symbol(A, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 11, 1), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 19, 1)) // These should all be Opt3 var a1 = a.a({}); >a1 : Symbol(a1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 31, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 32, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 33, 3)) >a.a : Symbol(A.a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) >a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 29, 3)) >a : Symbol(A.a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 12, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 13, 21), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 20, 13), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 21, 21)) var a1 = a({}); >a1 : Symbol(a1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 31, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 32, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 33, 3)) >a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 29, 3)) var a1 = new a({}); >a1 : Symbol(a1, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 31, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 32, 3), Decl(overloadBindingAcrossDeclarationBoundaries.ts, 33, 3)) >a : Symbol(a, Decl(overloadBindingAcrossDeclarationBoundaries.ts, 29, 3))