Repository: eslint/eslint
File: lib/linter/rule-fixer.js (JavaScript)

Code before:
	/**
	 * Creates a new instance.
	 * @param {Object} options The options for the fixer.
	 * @param {SourceCode} options.sourceCode The source code object representing the text to be fixed.
	 */
	constructor({ sourceCode }) {
		this.#sourceCode = sourceCode;
	}

	/**
	 * Creates a fix command that inserts text after the given node or token.
	 * The fix is not applied until applyFixes() is called.
	 * @param {ASTNode|Token} nodeOrToken The node or token to insert after.
	 * @param {string} text The text to insert.
	 * @returns {Object} The fix command.
	 */
	insertTextAfter(nodeOrToken, text) {
		const range = this.#sourceCode.getRange(nodeOrToken);

		return this.insertTextAfterRange(range, text);
	}

	/**
	 * Creates a fix command that inserts text after the specified range in the source text.
	 * The fix is not applied until applyFixes() is called.
	 * @param {number[]} range The range to replace, first item is start of range, second
	 *      is end of range.
	 * @param {string} text The text to insert.
	 * @returns {Object} The fix command.
	 */
	insertTextAfterRange(range, text) {
		return insertTextAt(range[1], text);
	}

	/**
	 * Creates a fix command that inserts text before the given node or token.
	 * The fix is not applied until applyFixes() is called.
	 * @param {ASTNode|Token} nodeOrToken The node or token to insert before.
	 * @param {string} text The text to insert.
	 * @returns {Object} The fix command.
	 */
	insertTextBefore(nodeOrToken, text) {
		const range = this.#sourceCode.getRange(nodeOrToken);

		return this.insertTextBeforeRange(range, text);
	}

	/**
	 * Creates a fix command that inserts text before the specified range in the source text.
	 * The fix is not applied until applyFixes() is called.
	 * @param {number[]} range The range to replace, first item is start of range, second

Review comment (suggestion):
```suggestion
	 * @param {SourceRange} range The range to replace, first item is start of range, second
```

This is the type `SourceRange` from `@eslint/core`.

Code after:
 */
class RuleFixer {
	/**
	 * The source code object representing the text to be fixed.
	 * @type {SourceCode}
	 */
	#sourceCode;

	/**
	 * Creates a new instance.
	 * @param {Object} options The options for the fixer.
	 * @param {SourceCode} options.sourceCode The source code object representing the text to be fixed.
	 */
	constructor({ sourceCode }) {
		this.#sourceCode = sourceCode;
	}

	/**
	 * Creates a fix command that inserts text after the given node or token.
	 * The fix is not applied until applyFixes() is called.
	 * @param {ASTNode|Token} nodeOrToken The node or token to insert after.
	 * @param {string} text The text to insert.
	 * @returns {Object} The fix command.
	 */
	insertTextAfter(nodeOrToken, text) {
		const range = this.#sourceCode.getRange(nodeOrToken);

		return this.insertTextAfterRange(range, text);
	}

	/**
	 * Creates a fix command that inserts text after the specified range in the source text.
	 * The fix is not applied until applyFixes() is called.
	 * @param {SourceRange} range The range to replace, first item is start of range, second
	 *      is end of range.
	 * @param {string} text The text to insert.
	 * @returns {Object} The fix command.
	 */
	insertTextAfterRange(range, text) {
		return insertTextAt(range[1], text);
	}

	/**
	 * Creates a fix command that inserts text before the given node or token.
	 * The fix is not applied until applyFixes() is called.
	 * @param {ASTNode|Token} nodeOrToken The node or token to insert before.
	 * @param {string} text The text to insert.
	 * @returns {Object} The fix command.
	 */
	insertTextBefore(nodeOrToken, text) {
		const range = this.#sourceCode.getRange(nodeOrToken);