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

		/**
		* Fixes the lint error by reordering the variable declarations inside of the function.
		*
		* @private
		* @param {Function} fixer - ESLint fixer
		* @returns {(Object|null)} fix or null
		*/
		function fix( fixer ) {
			var replacingText;
			var declarations;
			var startRange;
			var endRange;
			var source;
			var elem;
			var body;
			var i;
			var j;

			declarations = [];
			replacingText = '';
			body = node.body.body;
			source = context.getSourceCode();

			for ( i = 0; i < body.length; i++ ) {
				elem = body[ i ];
				if ( elem.type === 'VariableDeclaration' && elem.kind === 'var' ) {
					declarations.push({
						'text': source.getText( elem ),
						'name': elem.declarations[ 0 ].id.name,
						'col': elem.loc.start.column
					});
					if ( declarations.length === 1 ) {
						startRange = elem.range[ 0 ] - elem.loc.start.column;
					}
					endRange = elem.range[ 1 ];
				}
			}

			declarations.sort( sortVars );

			for ( i = 0; i < declarations.length; i++ ) {
				for ( j = 0; j < declarations[ i ].col; j++ ) {
					replacingText += '\t';
				}
				replacingText += declarations[ i ].text;
				if ( i !== declarations.length -1 ) {
					replacingText += '\n';
				}
			}

			return fixer.replaceTextRange( [ startRange, endRange ], replacingText ); // eslint-disable-line max-len
		}
	}
Reports the error message.

@private
@param {string} msg - error message
@param {ASTNode} node - node to fix