@Override public void visitPyClass(PyClass pyClass) { if (isAbstract(pyClass)) { return; } final Set<PyFunction> toBeImplemented = new HashSet<PyFunction>(); final Collection<PyFunction> functions = PyOverrideImplementUtil.getAllSuperFunctions(pyClass); for (PyFunction method : functions) { if (isAbstractMethodForClass(method, pyClass)) { toBeImplemented.add(method); } } final ASTNode nameNode = pyClass.getNameNode(); if (!toBeImplemented.isEmpty() && nameNode != null) { registerProblem( nameNode.getPsi(), PyBundle.message("INSP.NAME.abstract.class.$0.must.implement", pyClass.getName()), new PyImplementMethodsQuickFix(pyClass, toBeImplemented)); } }