blockScopedSameNameFunctionDeclarationES6.ts(5,13): error TS2554: Expected 0 arguments, but got 1.
blockScopedSameNameFunctionDeclarationES6.ts(10,13): error TS2554: Expected 0 arguments, but got 1.
blockScopedSameNameFunctionDeclarationES6.ts(13,5): error TS2554: Expected 1 arguments, but got 0.
blockScopedSameNameFunctionDeclarationES6.ts(16,1): error TS2554: Expected 1 arguments, but got 0.


==== blockScopedSameNameFunctionDeclarationES6.ts (4 errors) ====
    function foo(a: number) {
        if (a === 10) {
            function foo() { } // duplicate
            foo();
            foo(10); // not ok
                ~~
!!! error TS2554: Expected 0 arguments, but got 1.
        }
        else {
            function foo() { } // duplicate
            foo();
            foo(10);// not ok
                ~~
!!! error TS2554: Expected 0 arguments, but got 1.
        }
        foo(10); // not ok
        foo(); 
        ~~~
!!! error TS2554: Expected 1 arguments, but got 0.
!!! related TS6210 blockScopedSameNameFunctionDeclarationES6.ts:1:14: An argument for 'a' was not provided.
    }
    foo(10);
    foo(); // not ok - needs number
    ~~~
!!! error TS2554: Expected 1 arguments, but got 0.
!!! related TS6210 blockScopedSameNameFunctionDeclarationES6.ts:1:14: An argument for 'a' was not provided.