TypeScript/tests/baselines/reference/objectTypesIdentityWithComplexConstraints.js
2014-07-12 17:30:19 -07:00

20 lines
521 B
JavaScript

//// [objectTypesIdentityWithComplexConstraints.ts]
interface A {
<T extends {
<S extends A>(x: T, y: S): void
}>(x: T, y: T): void
}
interface B {
<U extends B>(x: U, y: U): void
}
// ok, not considered identical because the steps of contextual signature instantiation create fresh type parameters
function foo(x: A);
function foo(x: B); // error after constraints above made illegal
function foo(x: any) { }
//// [objectTypesIdentityWithComplexConstraints.js]
function foo(x) {
}