* fix(fixer) {
				const {sourceCode} = context;
				yield * convertNegatedCondition(fixer, node, sourceCode);
				yield * swapConsequentAndAlternate(fixer, node, sourceCode);

				if (
					node.type !== 'ConditionalExpression'
					|| test.type !== 'UnaryExpression'
				) {
					return;
				}

				yield * fixSpaceAroundKeyword(fixer, node, sourceCode);

				const {parent} = node;
				const [firstToken, secondToken] = sourceCode.getFirstTokens(test, 2);
				if (
					(parent.type === 'ReturnStatement' || parent.type === 'ThrowStatement')
					&& parent.argument === node
					&& !isOnSameLine(firstToken, secondToken)
					&& !isParenthesized(node, sourceCode)
					&& !isParenthesized(test, sourceCode)
				) {
					yield * addParenthesizesToReturnOrThrowExpression(fixer, parent, sourceCode);
					return;
				}

				const tokenBefore = sourceCode.getTokenBefore(node);
				if (needsSemicolon(tokenBefore, sourceCode, secondToken.value)) {
					yield fixer.insertTextBefore(node, ';');
				}
			}
@param {import('eslint').Rule.RuleFixer} fixer