@Override
    public void visitPyAssignmentStatement(@NotNull PyAssignmentStatement node) {
      final PyExpression value = node.getAssignedValue();
      if (value instanceof PyCallExpression call) {
        final PyType type = myTypeEvalContext.getType(value);
        final PyExpression callee = call.getCallee();

        if (type instanceof PyNoneType && callee != null) {
          final Condition<PyCallable> ignoredCallable =
            callable -> myTypeEvalContext.getReturnType(callable) != PyNoneType.INSTANCE ||
                        PythonSdkUtil.isElementInSkeletons(callable) ||
                        callable instanceof PyFunction && hasInheritors((PyFunction)callable);

          final List<PyCallable> callables = call.multiResolveCalleeFunction(getResolveContext());
          if (!callables.isEmpty() && !ContainerUtil.exists(callables, ignoredCallable)) {
            registerProblem(node, PyPsiBundle.message("INSP.none.function.assignment", callee.getName()), new PyRemoveAssignmentQuickFix());
          }
        }
      }
    }
@Override
    public void visitPyAssignmentStatement(@NotNull PyAssignmentStatement node)