Simplified FunctionType.cloneForSpecialization method.

This commit is contained in:
Eric Traut 2024-06-10 19:39:33 -07:00
parent ec196107e2
commit 2b0a1d92dd

View File

@ -1689,25 +1689,15 @@ export namespace FunctionType {
specializedTypes: SpecializedFunctionTypes,
specializedInferredReturnType: Type | undefined
): FunctionType {
const newFunction = create(
type.details.name,
type.details.fullName,
type.details.moduleName,
type.details.flags,
type.flags,
type.details.docString
);
newFunction.details = type.details;
const newFunction = TypeBase.cloneType(type);
assert(specializedTypes.parameterTypes.length === type.details.parameters.length);
if (specializedTypes.parameterDefaultArgs) {
assert(specializedTypes.parameterDefaultArgs.length === type.details.parameters.length);
}
newFunction.specializedTypes = specializedTypes;
if (specializedInferredReturnType) {
newFunction.inferredReturnType = specializedInferredReturnType;
}
newFunction.specializedTypes = specializedTypes;
newFunction.inferredReturnType = specializedInferredReturnType;
return newFunction;
}