(signature)
| 59972 | signature; |
| 59973 | } |
| 59974 | function createCanonicalSignature(signature) { |
| 59975 | // Create an instantiation of the signature where each unconstrained type parameter is replaced with |
| 59976 | // its original. When a generic class or interface is instantiated, each generic method in the class or |
| 59977 | // interface is instantiated with a fresh set of cloned type parameters (which we need to handle scenarios |
| 59978 | // where different generations of the same type parameter are in scope). This leads to a lot of new type |
| 59979 | // identities, and potentially a lot of work comparing those identities, so here we create an instantiation |
| 59980 | // that uses the original type identities for all unconstrained type parameters. |
| 59981 | return getSignatureInstantiation(signature, ts.map(signature.typeParameters, function (tp) { return tp.target && !getConstraintOfTypeParameter(tp.target) ? tp.target : tp; }), ts.isInJSFile(signature.declaration)); |
| 59982 | } |
| 59983 | function getBaseSignature(signature) { |
| 59984 | var typeParameters = signature.typeParameters; |
| 59985 | if (typeParameters) { |
no test coverage detected