void (final @NotNull PyClass node) { final List<PyClassLikeType> expressions = node.getSuperClassTypes(myTypeEvalContext); List<LocalQuickFix> quickFixes = new ArrayList<>(); quickFixes.add(new PyConvertToNewStyleQuickFix()); if (!expressions.isEmpty()) { quickFixes.add(new PyChangeBaseClassQuickFix()); } if (!node.isNewStyleClass(myTypeEvalContext)) { for (PyTargetExpression attr : node.getClassAttributes()) { if (PyNames.SLOTS.equals(attr.getName())) { registerProblem(attr, PyPsiBundle.message("INSP.oldstyle.class.slots"), ProblemHighlightType.GENERIC_ERROR_OR_WARNING, null, quickFixes.toArray( LocalQuickFix.EMPTY_ARRAY)); } } for (PyFunction attr : node.getMethods()) { if (PyNames.GETATTRIBUTE.equals(attr.getName())) { final ASTNode nameNode = attr.getNameNode(); assert nameNode != null; registerProblem(nameNode.getPsi(), PyPsiBundle.message("INSP.oldstyle.class.getattribute"), ProblemHighlightType.GENERIC_ERROR_OR_WARNING, null, quickFixes.toArray( LocalQuickFix.EMPTY_ARRAY)); } } } }