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