mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Skip empty classes while inspecting fields order (incl inherited) (PY-40018)
GitOrigin-RevId: 53ce68c45df4049346c67416d250b2e36e2c762c
This commit is contained in:
committed by
intellij-monorepo-bot
parent
dcccee7474
commit
bbaead5046
@@ -31,10 +31,20 @@ class PyNamedTupleInspection : PyInspection() {
|
||||
|
||||
val ancestors = cls.getAncestorClasses(context)
|
||||
val ancestorsFields = ancestors.map {
|
||||
when {
|
||||
!classFieldsFilter(it) -> Ancestor.FILTERED
|
||||
processFields(it, fieldsFilter, hasAssignedValue).fieldsWithDefaultValue.isNotEmpty() -> Ancestor.HAS_FIELD_WITH_DEFAULT_VALUE
|
||||
else -> Ancestor.HAS_NOT_FIELD_WITH_DEFAULT_VALUE
|
||||
if (!classFieldsFilter(it)) {
|
||||
Ancestor.FILTERED
|
||||
}
|
||||
else {
|
||||
val processor = processFields(it, fieldsFilter, hasAssignedValue)
|
||||
if (processor.fieldsWithDefaultValue.isNotEmpty()) {
|
||||
Ancestor.HAS_FIELD_WITH_DEFAULT_VALUE
|
||||
}
|
||||
else if (processor.lastFieldWithoutDefaultValue != null) {
|
||||
Ancestor.HAS_NOT_FIELD_WITH_DEFAULT_VALUE
|
||||
}
|
||||
else {
|
||||
Ancestor.FILTERED
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
from dataclasses import dataclass
|
||||
|
||||
@dataclass
|
||||
class AnimalClass:
|
||||
number_legs: int = None
|
||||
|
||||
@dataclass
|
||||
class MamaClass(AnimalClass):
|
||||
pass
|
||||
|
||||
@dataclass
|
||||
class CatClass(MamaClass):
|
||||
pet_name: str = None
|
||||
@@ -296,6 +296,11 @@ public class PyDataclassInspectionTest extends PyInspectionTestCase {
|
||||
doTest();
|
||||
}
|
||||
|
||||
// PY-40018
|
||||
public void testInheritingDefaultArgumentThroughEmptyDataclass() {
|
||||
doTest();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void doTest() {
|
||||
runWithLanguageLevel(
|
||||
|
||||
Reference in New Issue
Block a user