19 lines
788 B
Plaintext
19 lines
788 B
Plaintext
|
==== tests/cases/conformance/types/typeRelationships/typeAndMemberIdentity/objectTypesIdentityWithComplexConstraints.ts (1 errors) ====
|
||
|
interface A {
|
||
|
<T extends {
|
||
|
~~~~~~~~~~~
|
||
|
<S extends A>(x: T, y: S): void
|
||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||
|
}>(x: T, y: T): void
|
||
|
~~~~~~~
|
||
|
!!! Constraint of a type parameter cannot reference any type parameter from the same type parameter list.
|
||
|
}
|
||
|
|
||
|
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) { }
|