From 48a03076a32816b76b384b611def51bf5cc8fa53 Mon Sep 17 00:00:00 2001 From: Eric Traut Date: Sun, 16 Jun 2024 22:41:09 +0200 Subject: [PATCH] Fixed bug that resulted in the incorrect synthesis of `__dataclass_fields__` for named tuples. This addresses #8152. --- packages/pyright-internal/src/analyzer/dataClasses.ts | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/packages/pyright-internal/src/analyzer/dataClasses.ts b/packages/pyright-internal/src/analyzer/dataClasses.ts index 792324455..4d7c45994 100644 --- a/packages/pyright-internal/src/analyzer/dataClasses.ts +++ b/packages/pyright-internal/src/analyzer/dataClasses.ts @@ -659,10 +659,13 @@ export function synthesizeDataClassMethods( ) ); } - symbolTable.set( - '__dataclass_fields__', - Symbol.createWithType(SymbolFlags.ClassMember | SymbolFlags.ClassVar, dictType) - ); + + if (!isNamedTuple) { + symbolTable.set( + '__dataclass_fields__', + Symbol.createWithType(SymbolFlags.ClassMember | SymbolFlags.ClassVar, dictType) + ); + } if (ClassType.isDataClassGenerateSlots(classType) && classType.details.localSlotsNames === undefined) { classType.details.localSlotsNames = localDataClassEntries.map((entry) => entry.name);