docs: private static boolean isFormatStringParameter(Symbol formatString, VisitorState state) {
      Type stringType = state.getSymtab().stringType;
  
      // The input symbol must be a String and a parameter of a @FormatMethod to be a @FormatString.
      if (!ASTHelpers.isSameType(formatString.type, stringType, state)
          || !(formatString.owner instanceof MethodSymbol)
          || !ASTHelpers.hasAnnotation(formatString.owner, FormatMethod.class, state)) {
        return false;
      }
  
      // If the format string is annotated @FormatString in a @FormatMethod, it is a format string.
      if (ASTHelpers.hasAnnotation(formatString, FormatString.class, state)) {
        return true;
      }
  
      // Check if format string is the first string with no @FormatString params in the @FormatMethod.
      MethodSymbol owner = (MethodSymbol) formatString.owner;
      boolean formatStringFound = false;
      for (Symbol param : owner.getParameters()) {
        if (param == formatString) {
          formatStringFound = true;
        }
  
        if (ASTHelpers.isSameType(param.type, stringType, state)) {
          // If this is a String parameter before the input Symbol, then the input symbol can't be the
          // format string since it wasn't annotated @FormatString.
          if (!formatStringFound) {
            return false;
          } else if (ASTHelpers.hasAnnotation(param, FormatString.class, state)) {
            return false;
          }
        }
      }
  
      return true;
    }