code: function getDestructuringHost(reference) {
      if (!reference.isWrite()) {
          return null;
      }
      let node = reference.identifier.parent;
  
      while (PATTERN_TYPE.test(node.type)) {
          node = node.parent;
      }
  
      if (!DESTRUCTURING_HOST_TYPE.test(node.type)) {
          return null;
      }
      return node;
  }
docs: Gets the VariableDeclarator/AssignmentExpression node that a given reference
  belongs to.
  This is used to detect a mix of reassigned and never reassigned in a
  destructuring.
  
  @param {eslint-scope.Reference} reference - A reference to get.
  @returns {ASTNode|null} A VariableDeclarator/AssignmentExpression node or
  null.