diff --git a/python/python-psi-impl/src/com/jetbrains/python/inspections/PyDataclassInspection.kt b/python/python-psi-impl/src/com/jetbrains/python/inspections/PyDataclassInspection.kt
index 1072fe8457a2..e6b7f3cd48b5 100644
--- a/python/python-psi-impl/src/com/jetbrains/python/inspections/PyDataclassInspection.kt
+++ b/python/python-psi-impl/src/com/jetbrains/python/inspections/PyDataclassInspection.kt
@@ -60,8 +60,17 @@ class PyDataclassInspection : PyInspection() {
val dataclassParameters = parseDataclassParameters(node, myTypeEvalContext)
if (dataclassParameters != null) {
- if (dataclassParameters.type.asPredefinedType == PyDataclassParameters.PredefinedType.STD ||
- dataclassParameters.type.asPredefinedType == PyDataclassParameters.PredefinedType.DATACLASS_TRANSFORM) {
+ if (dataclassParameters.type.asPredefinedType == PyDataclassParameters.PredefinedType.DATACLASS_TRANSFORM) {
+ processDataclassParameters(node, dataclassParameters)
+
+ node.processClassLevelDeclarations { element, _ ->
+ if (element is PyTargetExpression) {
+ processFieldFunctionCall(node, dataclassParameters, element)
+ }
+ true
+ }
+ }
+ else if (dataclassParameters.type.asPredefinedType == PyDataclassParameters.PredefinedType.STD) {
processDataclassParameters(node, dataclassParameters)
val postInit = node.findMethodByName(Dataclasses.DUNDER_POST_INIT, false, myTypeEvalContext)
diff --git a/python/testData/inspections/PyDataclassInspection/MutableDefaultFieldValueDataclassTransform/a.py b/python/testData/inspections/PyDataclassInspection/MutableDefaultFieldValueDataclassTransform/a.py
index 1eb85248a92f..61790553b71f 100644
--- a/python/testData/inspections/PyDataclassInspection/MutableDefaultFieldValueDataclassTransform/a.py
+++ b/python/testData/inspections/PyDataclassInspection/MutableDefaultFieldValueDataclassTransform/a.py
@@ -6,19 +6,19 @@ from decorator import my_dataclass, field
@my_dataclass()
class A:
- a: list[int] = []
- b: list[int] = list()
- c: set[int] = {1}
- d: set[int] = set()
+ a: list[int] = []
+ b: list[int] = list()
+ c: set[int] = {1}
+ d: set[int] = set()
e: tuple[int, ...] = ()
f: tuple[int, ...] = tuple()
g: ClassVar[list[int]] = []
h: ClassVar = []
- i: dict[int, int] = {1: 2}
- j: dict[int, int] = dict()
+ i: dict[int, int] = {1: 2}
+ j: dict[int, int] = dict()
k = []
l = list()
- m: dict[int, int] = OrderedDict()
+ m: dict[int, int] = OrderedDict()
n: frozenset[int] = frozenset()
o: list = field(default_factory=list)
a2: type[list[int]] = list