// @target: es2015
class C<T> {
   public bar2<U extends T>(x: T, y: U): T {
      return null;
     }
}
 
var x = new C<number>();
x.bar2(2, ""); // should error
x.bar2<string>(2, ""); // should error