From 89825e1c4e1a37653772b1e93b70a29a77cf85b4 Mon Sep 17 00:00:00 2001 From: Eric Traut Date: Sat, 1 Nov 2025 20:05:36 -0500 Subject: [PATCH] Fixed regression that results in a false positive when using the `pydantic.dataclasses.dataclass` decorator. This addresses #11060. (#11084) --- .../pyright-internal/src/analyzer/decorators.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/pyright-internal/src/analyzer/decorators.ts b/packages/pyright-internal/src/analyzer/decorators.ts index c6f1866fa..43b2814b9 100644 --- a/packages/pyright-internal/src/analyzer/decorators.ts +++ b/packages/pyright-internal/src/analyzer/decorators.ts @@ -325,7 +325,7 @@ export function applyClassDecorator( } } - const applyDataclassTransform = (): void => { + const applyDataclassTransform = (): boolean => { // Is this a dataclass decorator? let dataclassBehaviors: DataClassBehaviors | undefined; let callNode: CallNode | undefined; @@ -344,7 +344,10 @@ export function applyClassDecorator( if (dataclassBehaviors) { applyDataClassDecorator(evaluator, decoratorNode, originalClassType, dataclassBehaviors, callNode); + return true; } + + return false; }; if (isOverloaded(decoratorType)) { @@ -383,14 +386,18 @@ export function applyClassDecorator( return inputClassType; } - applyDataclassTransform(); + if (applyDataclassTransform()) { + return inputClassType; + } } else if (isClassInstance(decoratorType)) { if (ClassType.isBuiltIn(decoratorType, 'deprecated')) { originalClassType.shared.deprecatedMessage = decoratorType.priv.deprecatedInstanceMessage; return inputClassType; } - applyDataclassTransform(); + if (applyDataclassTransform()) { + return inputClassType; + } } return getTypeOfDecorator(evaluator, decoratorNode, inputClassType);