code: function report(node, missing) {
              const lastToken = sourceCode.getLastToken(node);
              let message,
                  fix,
                  loc = lastToken.loc;
  
              if (!missing) {
                  message = "Missing semicolon.";
                  loc = loc.end;
                  fix = function(fixer) {
                      return fixer.insertTextAfter(lastToken, ";");
                  };
              } else {
                  message = "Extra semicolon.";
                  loc = loc.start;
                  fix = function(fixer) {
  
                      /*
                       * Expand the replacement range to include the surrounding
                       * tokens to avoid conflicting with no-extra-semi.
                       * https://github.com/eslint/eslint/issues/7928
                       */
                      return new FixTracker(fixer, sourceCode)
                          .retainSurroundingTokens(lastToken)
                          .remove(lastToken);
                  };
              }
  
              context.report({
                  node,
                  loc,
                  message,
                  fix
              });
  
          }
docs: -------------------------------------------------------------------------- Helpers -------------------------------------------------------------------------- 
  Reports a semicolon error with appropriate location and message.
  @param {ASTNode} node The node with an extra or missing semicolon.
  @param {boolean} missing True if the semicolon is missing.
  @returns {void}