code: function report(node) {
              const leftParenToken = sourceCode.getTokenBefore(node);
              const rightParenToken = sourceCode.getTokenAfter(node);
  
              if (!isParenthesisedTwice(node)) {
                  if (tokensToIgnore.has(sourceCode.getFirstToken(node))) {
                      return;
                  }
  
                  if (isIIFE(node) && !isParenthesised(node.callee)) {
                      return;
                  }
              }
  
              context.report({
                  node,
                  loc: leftParenToken.loc.start,
                  messageId: "unexpected",
                  fix(fixer) {
                      const parenthesizedSource = sourceCode.text.slice(leftParenToken.range[1], rightParenToken.range[0]);
  
                      return fixer.replaceTextRange([
                          leftParenToken.range[0],
                          rightParenToken.range[1]
                      ], (requiresLeadingSpace(node) ? " " : "") + parenthesizedSource + (requiresTrailingSpace(node) ? " " : ""));
                  }
              });
          }
docs: Report the node
  @param {ASTNode} node node to evaluate
  @returns {void}
  @private