code: function isForbidden(variable, reference) {
              if (isFunction(variable)) {
                  return options.functions;
              }
              if (isOuterClass(variable, reference)) {
                  return options.classes;
              }
              if (isOuterVariable(variable, reference)) {
                  return options.variables;
              }
              return true;
          }
docs: Determines whether a given use-before-define case should be reported according to the options.
  @param {eslint-scope.Variable} variable The variable that gets used before being defined
  @param {eslint-scope.Reference} reference The reference to the variable
  @returns {boolean} `true` if the usage should be reported