mirror of
https://github.com/microsoft/pyright.git
synced 2024-10-26 10:55:06 +03:00
Fixed bug caused by incorrect synthesis of item
and keys
attributes for named tuple classes. This addresses #7768. (#7775)
This commit is contained in:
parent
547a15021b
commit
7194375bff
@ -382,15 +382,6 @@ export function createNamedTupleType(
|
|||||||
classFields.set('__new__', Symbol.createWithType(SymbolFlags.ClassMember, constructorType));
|
classFields.set('__new__', Symbol.createWithType(SymbolFlags.ClassMember, constructorType));
|
||||||
classFields.set('__init__', Symbol.createWithType(SymbolFlags.ClassMember, initType));
|
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__');
|
const lenType = FunctionType.createSynthesizedInstance('__len__');
|
||||||
lenType.details.declaredReturnType = evaluator.getBuiltInObject(errorNode, 'int');
|
lenType.details.declaredReturnType = evaluator.getBuiltInObject(errorNode, 'int');
|
||||||
FunctionType.addParameter(lenType, selfParameter);
|
FunctionType.addParameter(lenType, selfParameter);
|
||||||
|
Loading…
Reference in New Issue
Block a user