JSXOpeningElement: function(node) {
   var variables = variablesInScope(context)
   if (findVariable(variables, name)) return
   context.report({
     message: `'${name}' must be in scope when using JSX syntax`,
     node: node
   })
 }
const noUndefRule = context => {
  return {
    JSXOpeningElement(node) {
      var name = node.name
      if (name.type == 'JSXMemberExpression') name = name.object
      if (name.type == 'JSXNamespacedName') name = name.namespace
      const variables = variablesInScope(context)
      node.attributes.forEach(attr => {
        if (attr.type == 'JSXSpreadAttribute') return
        if (attr.value == null) checkDefined(context, variables, attr.name)
      })
      if (!standardTags.has(name.name)) checkDefined(context, variables, name)
    }
  }
}