docs: private Description checkOverriding(
        Symbol.MethodSymbol overriddenMethod,
        Symbol.MethodSymbol overridingMethod,
        @Nullable MemberReferenceTree memberReferenceTree,
        VisitorState state) {
      final boolean isOverridenMethodUnannotated =
          NullabilityUtil.isUnannotated(overriddenMethod, config);
      final boolean overriddenMethodReturnsNonNull =
          ((isOverridenMethodUnannotated
                  && handler.onUnannotatedInvocationGetExplicitlyNonNullReturn(
                      overriddenMethod, false))
              || (!isOverridenMethodUnannotated
                  && !Nullness.hasNullableAnnotation(overriddenMethod)));
      // if the super method returns nonnull,
      // overriding method better not return nullable
      if (overriddenMethodReturnsNonNull
          && Nullness.hasNullableAnnotation(overridingMethod)
          && getComputedNullness(memberReferenceTree).equals(Nullness.NULLABLE)) {
        String message;
        if (memberReferenceTree != null) {
          message =
              "referenced method returns @Nullable, but functional interface method "
                  + ASTHelpers.enclosingClass(overriddenMethod)
                  + "."
                  + overriddenMethod.toString()
                  + " returns @NonNull";
  
        } else {
          message =
              "method returns @Nullable, but superclass method "
                  + ASTHelpers.enclosingClass(overriddenMethod)
                  + "."
                  + overriddenMethod.toString()
                  + " returns @NonNull";
        }
        Tree errorTree =
            memberReferenceTree != null
                ? memberReferenceTree
                : getTreesInstance(state).getTree(overridingMethod);
        return errorBuilder.createErrorDescription(
            new ErrorMessage(MessageTypes.WRONG_OVERRIDE_RETURN, message),
            state.getPath(),
            buildDescription(errorTree));
      }
      // if any parameter in the super method is annotated @Nullable,
      // overriding method cannot assume @Nonnull
      return checkParamOverriding(
          overridingMethod.getParameters(), overriddenMethod, null, memberReferenceTree, state);
    }