class GraphQL::Client::DefinitionVariables::VariablesVisitor

def initialize(*_args, **_kwargs)

def initialize(*_args, **_kwargs)
  super
  @variables = {}
end

def on_variable_identifier(node, parent)

def on_variable_identifier(node, parent)
  if definition = @argument_definitions.last
    existing_type = @variables[node.name.to_sym]
    if existing_type && existing_type.unwrap != definition.type.unwrap
      raise GraphQL::Client::ValidationError, "$#{node.name} was already declared as #{existing_type.unwrap}, but was #{definition.type.unwrap}"
    elsif !(existing_type && existing_type.kind.non_null?)
      @variables[node.name.to_sym] = definition.type
    end
  end
  super
end