tests/cases/compiler/callOverloads3.ts(1,10): error TS2300: Duplicate identifier 'Foo'.
tests/cases/compiler/callOverloads3.ts(1,16): error TS2304: Cannot find name '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(2,24): error TS2304: Cannot find name 'Foo'.
tests/cases/compiler/callOverloads3.ts(3,7): error TS2300: Duplicate identifier 'Foo'.
tests/cases/compiler/callOverloads3.ts(11,10): error TS2350: Only a void function can be called with the 'new' keyword.


==== tests/cases/compiler/callOverloads3.ts (7 errors) ====
    function Foo():Foo; // error
             ~~~
!!! error TS2300: Duplicate identifier 'Foo'.
                   ~~~
!!! error TS2304: Cannot find name 'Foo'.
    function Foo(s:string):Foo; // error
             ~~~
!!! error TS2300: Duplicate identifier 'Foo'.
             ~~~
!!! error TS2391: Function implementation is missing or not immediately following the declaration.
                           ~~~
!!! error TS2304: Cannot find name 'Foo'.
    class Foo { // error
          ~~~
!!! error TS2300: Duplicate identifier 'Foo'.
        bar1() { /*WScript.Echo("bar1");*/ }
        constructor(x: any) {
            // WScript.Echo("Constructor function has executed");
        }
    }
    //class Foo(s: String);
    
    var f1 = new Foo("hey");
             ~~~~~~~~~~~~~~
!!! error TS2350: Only a void function can be called with the 'new' keyword.
    
    
    f1.bar1();
    Foo();
    Foo("s");
    