mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-06 02:33:53 -06:00
Merge pull request #30303 from Microsoft/fixSignatureQuickInfo
Fix quick info for higher order generic functions
This commit is contained in:
commit
62b0d984bf
@ -6779,8 +6779,19 @@ namespace ts {
|
||||
}
|
||||
|
||||
function cloneSignature(sig: Signature): Signature {
|
||||
return createSignature(sig.declaration, sig.typeParameters, sig.thisParameter, sig.parameters, /*resolvedReturnType*/ undefined,
|
||||
const result = createSignature(sig.declaration, sig.typeParameters, sig.thisParameter, sig.parameters, /*resolvedReturnType*/ undefined,
|
||||
/*resolvedTypePredicate*/ undefined, sig.minArgumentCount, sig.hasRestParameter, sig.hasLiteralTypes);
|
||||
result.target = sig.target;
|
||||
result.mapper = sig.mapper;
|
||||
return result;
|
||||
}
|
||||
|
||||
function createUnionSignature(signature: Signature, unionSignatures: Signature[]) {
|
||||
const result = cloneSignature(signature);
|
||||
result.unionSignatures = unionSignatures;
|
||||
result.target = undefined;
|
||||
result.mapper = undefined;
|
||||
return result;
|
||||
}
|
||||
|
||||
function getExpandedParameters(sig: Signature): ReadonlyArray<Symbol> {
|
||||
@ -6890,9 +6901,8 @@ namespace ts {
|
||||
const thisType = getUnionType(map(unionSignatures, sig => sig.thisParameter ? getTypeOfSymbol(sig.thisParameter) : anyType), UnionReduction.Subtype);
|
||||
thisParameter = createSymbolWithType(signature.thisParameter!, thisType);
|
||||
}
|
||||
s = cloneSignature(signature);
|
||||
s = createUnionSignature(signature, unionSignatures);
|
||||
s.thisParameter = thisParameter;
|
||||
s.unionSignatures = unionSignatures;
|
||||
}
|
||||
(result || (result = [])).push(s);
|
||||
}
|
||||
@ -8400,8 +8410,6 @@ namespace ts {
|
||||
if (returnSignature) {
|
||||
const newReturnSignature = cloneSignature(returnSignature);
|
||||
newReturnSignature.typeParameters = inferredTypeParameters;
|
||||
newReturnSignature.target = returnSignature.target;
|
||||
newReturnSignature.mapper = returnSignature.mapper;
|
||||
const newInstantiatedSignature = cloneSignature(instantiatedSignature);
|
||||
newInstantiatedSignature.resolvedReturnType = getOrCreateTypeFromSignature(newReturnSignature);
|
||||
return newInstantiatedSignature;
|
||||
@ -18346,14 +18354,8 @@ namespace ts {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Result is union of signatures collected (return type is union of return types of this signature set)
|
||||
let result: Signature | undefined;
|
||||
if (signatureList) {
|
||||
result = cloneSignature(signatureList[0]);
|
||||
result.unionSignatures = signatureList;
|
||||
}
|
||||
return result;
|
||||
return signatureList && createUnionSignature(signatureList[0], signatureList);
|
||||
}
|
||||
|
||||
function checkSpreadExpression(node: SpreadElement, checkMode?: CheckMode): Type {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user