tests/cases/compiler/funClodule.ts(1,18): error TS2300: Duplicate identifier 'foo'. tests/cases/compiler/funClodule.ts(2,16): error TS2300: Duplicate identifier 'foo'. tests/cases/compiler/funClodule.ts(5,15): error TS2300: Duplicate identifier 'foo'. tests/cases/compiler/funClodule.ts(8,15): error TS2300: Duplicate identifier 'foo2'. tests/cases/compiler/funClodule.ts(9,16): error TS2300: Duplicate identifier 'foo2'. tests/cases/compiler/funClodule.ts(12,18): error TS2300: Duplicate identifier 'foo2'. tests/cases/compiler/funClodule.ts(15,10): error TS2300: Duplicate identifier 'foo3'. tests/cases/compiler/funClodule.ts(16,8): error TS2300: Duplicate identifier 'foo3'. tests/cases/compiler/funClodule.ts(19,7): error TS2300: Duplicate identifier 'foo3'. ==== tests/cases/compiler/funClodule.ts (9 errors) ==== declare function foo(); ~~~ !!! error TS2300: Duplicate identifier 'foo'. declare module foo { ~~~ !!! error TS2300: Duplicate identifier 'foo'. export function x(): any; } declare class foo { } // Should error ~~~ !!! error TS2300: Duplicate identifier 'foo'. declare class foo2 { } ~~~~ !!! error TS2300: Duplicate identifier 'foo2'. declare module foo2 { ~~~~ !!! error TS2300: Duplicate identifier 'foo2'. export function x(): any; } declare function foo2(); // Should error ~~~~ !!! error TS2300: Duplicate identifier 'foo2'. function foo3() { } ~~~~ !!! error TS2300: Duplicate identifier 'foo3'. module foo3 { ~~~~ !!! error TS2300: Duplicate identifier 'foo3'. export function x(): any { } } class foo3 { } // Should error ~~~~ !!! error TS2300: Duplicate identifier 'foo3'.