==== tests/cases/compiler/generics2.ts (3 errors) ====
    interface A { a: string; }
    interface B extends A { b: string; }
    interface C extends B { c: string; }
    interface G<T, U extends B> {
        x: T;
        y: U;
    }
    
    
    var v1: {
        x: { a: string; }
        y: { a: string; b: string; c: string };
    }; // Ok
    
    
    var v2: G<{ a: string }, C>;   // Ok, equivalent to G<A, C>
    var v3: G<A, A>;               // Error, A not valid argument for U
            ~~~~~~~
!!! generics2.ts(17,9): error TS2086: Type 'A' does not satisfy the constraint 'B' for type parameter 'U extends B'.
    var v4: G<G<A, B>, C>;         // Ok
    var v5: G<any, any>;           // Error, any does not satisfy constraint B
    var v6: G<any>;                // Error, wrong number of arguments
            ~~~~~~
!!! generics2.ts(20,9): error TS2090: Generic type 'G<T, U>' requires 2 type argument(s).
    var v7: G;                     // Error, no type arguments
            ~
!!! generics2.ts(21,9): error TS2173: Generic type references must include all type arguments.
    