Changed implementation for @typing.deprecated so the code doesn't assume it is declared as an overloaded function. This was changed in typeshed recently.

This commit is contained in:
Eric Traut 2023-03-08 09:13:42 -07:00
parent dd9fa29f9e
commit da2498b0e7

View File

@ -16867,6 +16867,9 @@ export function createTypeEvaluator(importLookup: ImportLookup, evaluatorOptions
evaluatorInterface,
decoratorNode.expression
);
} else if (decoratorCallType.details.name === 'deprecated') {
originalClassType.details.deprecatedMessage = getCustomDeprecationMessage(decoratorNode);
return inputClassType;
}
}
@ -16908,6 +16911,11 @@ export function createTypeEvaluator(importLookup: ImportLookup, evaluatorOptions
return inputClassType;
}
if (decoratorType.details.builtInName === 'deprecated') {
originalClassType.details.deprecatedMessage = getCustomDeprecationMessage(decoratorNode);
return inputClassType;
}
if (decoratorType.details.builtInName === 'runtime_checkable') {
originalClassType.details.flags |= ClassTypeFlags.RuntimeCheckable;
@ -17943,6 +17951,11 @@ export function createTypeEvaluator(importLookup: ImportLookup, evaluatorOptions
);
return inputFunctionType;
}
if (decoratorCallType.details.name === 'deprecated') {
undecoratedType.details.deprecatedMessage = getCustomDeprecationMessage(decoratorNode);
return inputFunctionType;
}
}
if (isOverloadedFunction(decoratorCallType)) {
@ -17964,6 +17977,11 @@ export function createTypeEvaluator(importLookup: ImportLookup, evaluatorOptions
return inputFunctionType;
}
if (decoratorType.details.builtInName === 'deprecated') {
undecoratedType.details.deprecatedMessage = getCustomDeprecationMessage(decoratorNode);
return inputFunctionType;
}
// Handle property setters and deleters.
if (decoratorNode.expression.nodeType === ParseNodeType.MemberAccess) {
const baseType = getTypeOfExpression(