function hasUnexpectedTokensBeforeOpeningParen(node, openingParen) {
			const expectedCount = node.async ? 1 : 0;

			return (
				sourceCode.getFirstToken(node, { skip: expectedCount }) !==
				openingParen
			);
		}
Determines whether the given arrow function has unexpected tokens before opening paren of parameters,
in which case it will be assumed that the existing parens of parameters are necessary.
Only tokens within the range of the arrow function (tokens that are part of the arrow function) are taken into account.
Example: <T>(a) => b
@param {ASTNode} node `ArrowFunctionExpression` node.
@param {Token} openingParen Opening paren of parameters.
@returns {boolean} `true` if the function has at least one unexpected token.