function getClosestMatchingParent(node, context, matcher) {
  if (!node || !node.parent || node.parent.type === 'Program') {
    return;
  }

  if (matcher(node.parent, context)) {
    return node.parent;
  }

  return getClosestMatchingParent(node.parent, context, matcher);
}
Get closest parent matching given matcher
@param {ASTNode} node The AST node
@param {Context} context eslint context
@param {Function} matcher Method used to match the parent
@returns {ASTNode} The matching parent node, if any