=== tests/cases/compiler/emptyIndexer.ts === interface I1 { >I1 : I1, Symbol(I1, Decl(emptyIndexer.ts, 0, 0)) m(): number; >m : () => number, Symbol(m, Decl(emptyIndexer.ts, 0, 14)) } interface I2 { >I2 : I2, Symbol(I2, Decl(emptyIndexer.ts, 2, 1)) [s:string]: I1; >s : string, Symbol(s, Decl(emptyIndexer.ts, 5, 2)) >I1 : I1, Symbol(I1, Decl(emptyIndexer.ts, 0, 0)) } var x: I2; >x : I2, Symbol(x, Decl(emptyIndexer.ts, 9, 3)) >I2 : I2, Symbol(I2, Decl(emptyIndexer.ts, 2, 1)) var n = x[''].m(); // should not crash compiler >n : number, Symbol(n, Decl(emptyIndexer.ts, 11, 3)) >x[''].m() : number >x[''].m : () => number, Symbol(I1.m, Decl(emptyIndexer.ts, 0, 14)) >x[''] : I1 >x : I2, Symbol(x, Decl(emptyIndexer.ts, 9, 3)) >'' : string >m : () => number, Symbol(I1.m, Decl(emptyIndexer.ts, 0, 14))