Fixed bug caused by incorrect synthesis of item and keys attributes for named tuple classes. This addresses #7768. (#7775)

This commit is contained in:
Eric Traut 2024-04-25 19:50:12 -07:00 committed by GitHub
parent 547a15021b
commit 7194375bff
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -382,15 +382,6 @@ export function createNamedTupleType(
classFields.set('__new__', Symbol.createWithType(SymbolFlags.ClassMember, constructorType));
classFields.set('__init__', Symbol.createWithType(SymbolFlags.ClassMember, initType));
const keysItemType = FunctionType.createSynthesizedInstance('keys');
const itemsItemType = FunctionType.createSynthesizedInstance('items');
keysItemType.details.declaredReturnType = evaluator.getBuiltInObject(errorNode, 'list', [
evaluator.getBuiltInObject(errorNode, 'str'),
]);
itemsItemType.details.declaredReturnType = keysItemType.details.declaredReturnType;
classFields.set('keys', Symbol.createWithType(SymbolFlags.InstanceMember, keysItemType));
classFields.set('items', Symbol.createWithType(SymbolFlags.InstanceMember, itemsItemType));
const lenType = FunctionType.createSynthesizedInstance('__len__');
lenType.details.declaredReturnType = evaluator.getBuiltInObject(errorNode, 'int');
FunctionType.addParameter(lenType, selfParameter);