==== tests/cases/compiler/typeParameterConstraints1.ts (22 errors) ====
    function foo1<T extends any>(test: T) { }
    function foo2<T extends number>(test: T) { }
    function foo3<T extends string>(test: T) { }
    function foo4<T extends Date>(test: T) { } // valid
    function foo5<T extends RegExp>(test: T) { } // valid
    function foo6<T extends hm>(test: T) { }
                            ~~
!!! typeParameterConstraints1.ts(6,25): error TS2095: Could not find symbol 'hm'.
    function foo7<T extends Object>(test: T) { } // valid
    function foo8<T extends "">(test: T) { }
                            ~~
!!! typeParameterConstraints1.ts(8,25): error TS1003: Identifier expected.
                                    ~
!!! typeParameterConstraints1.ts(8,33): error TS1005: ')' expected.
                                       ~
!!! typeParameterConstraints1.ts(8,36): error TS1005: ';' expected.
                                ~~~~
!!! typeParameterConstraints1.ts(8,29): error TS2095: Could not find symbol 'test'.
                                      ~
!!! typeParameterConstraints1.ts(8,35): error TS2095: Could not find symbol 'T'.
    function foo9<T extends 1 > (test: T) { }
                            ~
!!! typeParameterConstraints1.ts(9,25): error TS1003: Identifier expected.
                                     ~
!!! typeParameterConstraints1.ts(9,34): error TS1005: ')' expected.
                                        ~
!!! typeParameterConstraints1.ts(9,37): error TS1005: ';' expected.
                                 ~~~~
!!! typeParameterConstraints1.ts(9,30): error TS2095: Could not find symbol 'test'.
                                       ~
!!! typeParameterConstraints1.ts(9,36): error TS2095: Could not find symbol 'T'.
    function foo10<T extends (1)> (test: T) { }
                              ~
!!! typeParameterConstraints1.ts(10,27): error TS1008: Unexpected token; 'parameter' expected.
                               ~
!!! typeParameterConstraints1.ts(10,28): error TS1005: ';' expected.
                                ~
!!! typeParameterConstraints1.ts(10,29): error TS1008: Unexpected token; 'module, class, interface, enum, import or statement' expected.
                                            ~
!!! typeParameterConstraints1.ts(10,41): error TS1005: '=>' expected.
                                         ~
!!! typeParameterConstraints1.ts(10,38): error TS2095: Could not find symbol 'T'.
    function foo11<T extends null> (test: T) { }
                             ~~~~
!!! typeParameterConstraints1.ts(11,26): error TS1006: Identifier expected; 'null' is a keyword.
                                        ~
!!! typeParameterConstraints1.ts(11,37): error TS1005: ')' expected.
                                           ~
!!! typeParameterConstraints1.ts(11,40): error TS1005: ';' expected.
                                    ~~~~
!!! typeParameterConstraints1.ts(11,33): error TS2095: Could not find symbol 'test'.
                                          ~
!!! typeParameterConstraints1.ts(11,39): error TS2095: Could not find symbol 'T'.
    function foo12<T extends undefined>(test: T) { }
                             ~~~~~~~~~
!!! typeParameterConstraints1.ts(12,26): error TS2095: Could not find symbol 'undefined'.
    function foo13<T extends void>(test: T) { }