tests/cases/compiler/callOverloads3.ts(1,10): error TS2300: Duplicate identifier 'Foo'.
tests/cases/compiler/callOverloads3.ts(2,10): error TS2300: Duplicate identifier 'Foo'.
tests/cases/compiler/callOverloads3.ts(2,10): error TS2391: Function implementation is missing or not immediately following the declaration.
tests/cases/compiler/callOverloads3.ts(3,7): error TS2300: Duplicate identifier 'Foo'.


==== tests/cases/compiler/callOverloads3.ts (4 errors) ====
    function Foo():Foo; // error
             ~~~
!!! error TS2300: Duplicate identifier 'Foo'.
!!! related TS6203 tests/cases/compiler/callOverloads3.ts:2:10: 'Foo' was also declared here.
!!! related TS6204 tests/cases/compiler/callOverloads3.ts:3:7: and here.
    function Foo(s:string):Foo; // error
             ~~~
!!! error TS2300: Duplicate identifier 'Foo'.
!!! related TS6203 tests/cases/compiler/callOverloads3.ts:1:10: 'Foo' was also declared here.
!!! related TS6204 tests/cases/compiler/callOverloads3.ts:3:7: and here.
             ~~~
!!! error TS2391: Function implementation is missing or not immediately following the declaration.
    class Foo { // error
          ~~~
!!! error TS2300: Duplicate identifier 'Foo'.
!!! related TS6203 tests/cases/compiler/callOverloads3.ts:1:10: 'Foo' was also declared here.
!!! related TS6204 tests/cases/compiler/callOverloads3.ts:2:10: and here.
        bar1() { /*WScript.Echo("bar1");*/ }
        constructor(x: any) {
            // WScript.Echo("Constructor function has executed");
        }
    }
    //class Foo(s: String);
    
    var f1 = new Foo("hey");
    
    
    f1.bar1();
    Foo();
    Foo("s");
    