tests/cases/compiler/callOverloads2.ts(3,7): error TS2300: Duplicate identifier 'Foo'.
tests/cases/compiler/callOverloads2.ts(11,10): error TS2300: Duplicate identifier 'Foo'.
tests/cases/compiler/callOverloads2.ts(13,10): error TS2389: Function implementation name must be 'Foo'.
tests/cases/compiler/callOverloads2.ts(13,10): error TS2393: Duplicate function implementation.
tests/cases/compiler/callOverloads2.ts(14,10): error TS2393: Duplicate function implementation.
tests/cases/compiler/callOverloads2.ts(16,10): error TS2391: Function implementation is missing or not immediately following the declaration.
tests/cases/compiler/callOverloads2.ts(24,1): error TS2348: Value of type 'typeof Foo' is not callable. Did you mean to include 'new'?


==== tests/cases/compiler/callOverloads2.ts (7 errors) ====
    
    
    class Foo { // error
          ~~~
!!! error TS2300: Duplicate identifier 'Foo'.
        bar1() { /*WScript.Echo("bar1");*/ }
    
        constructor(x: any) {
            // WScript.Echo("Constructor function has executed");
        }
    }
    
    function Foo(); // error
             ~~~
!!! error TS2300: Duplicate identifier 'Foo'.
    
    function F1(s:string) {return s;} // error
             ~~
!!! error TS2389: Function implementation name must be 'Foo'.
             ~~
!!! error TS2393: Duplicate function implementation.
    function F1(a:any) { return a;} // error
             ~~
!!! error TS2393: Duplicate function implementation.
    
    function Goo(s:string); // error - no implementation
             ~~~
!!! error TS2391: Function implementation is missing or not immediately following the declaration.
    
    declare function Gar(s:String); // expect no error
    
    var f1 = new Foo("hey");
    
    
    f1.bar1();
    Foo();
    ~~~~~
!!! error TS2348: Value of type 'typeof Foo' is not callable. Did you mean to include 'new'?
    