function report( msg, loc, opts ) {
		context.report({
			'node': null,
			'message': msg,
			'loc': loc,
			'fix': fix
		});

		/**
		* Fixes the lint error.
		*
		* @private
		* @param {Object} fixer - ESLint fixer
		* @returns {Object} fix
		*/
		function fix( fixer ) {
			var nSpaces;
			var range;
			var start;
			var end;
			var i;

			start = 0;
			end = 0;
			for ( i = 0; i < lines.length; i++ ) {
				if ( i < loc.start.line ) {
					start += lines[ i ].length + 1;
				}
				else if ( i < loc.end.line ) {
					end += lines[ i ].length + 1;
				}
			}
			range = [ start, start + end ];
			if ( opts.beforeHeader ) {
				nSpaces = 2;
			} else if ( opts.lastLine ) {
				nSpaces = 0;
			} else {
				nSpaces = 1;
			}
			return fixer.replaceTextRange( range, '\n'.repeat( nSpaces ) );
		}
	}
Reports the error message.

@private
@param {string} msg - message to report
@param {Object} loc - lines of code (object with `start` and `end` properties)
@param {Object} opts - options
@param {boolean} opts.beforeHeader - boolean indicating whether the error is before a section header
@param {boolean} opts.lastLine - boolean indicating whether the error is on the last line