void (@NotNull PyClass node) { final PyClass outerClass = PsiTreeUtil.getParentOfType(node, PyClass.class); assert node != null; if (outerClass != null && StringUtil.equalsIgnoreCase("meta", node.getName())) { return; } final List<PyClassLikeType> types = node.getAncestorTypes(myTypeEvalContext); if (PyTypedDictTypeProvider.Companion.isTypingTypedDictInheritor(node, myTypeEvalContext)) return; for (PyClassLikeType type : types) { if (type == null) return; final String qName = type.getClassQName(); if (qName != null && qName.contains(PyNames.TEST_CASE)) return; if (!(type instanceof PyClassType)) return; } final PyFunction init = node.findInitOrNew(true, myTypeEvalContext); if (init == null) { registerProblem(node.getNameIdentifier(), PyPsiBundle.message("INSP.class.has.no.init"), new AddMethodQuickFix(PyNames.INIT, node.getName(), false)); } }