function getVariableUsages(HasSelectionSet $node)
{
$usages = isset($this->variableUsages[$node]) ? $this->variableUsages[$node] : null;
if (!$usages) {
$newUsages = [];
$typeInfo = new TypeInfo($this->schema);
Visitor::visit($node, Visitor::visitWithTypeInfo($typeInfo, [NodeKind::VARIABLE_DEFINITION => function () {
return false;
}, NodeKind::VARIABLE => function (VariableNode $variable) use(&$newUsages, $typeInfo) {
$newUsages[] = ['node' => $variable, 'type' => $typeInfo->getInputType()];
}]));
$usages = $newUsages;
$this->variableUsages[$node] = $usages;
}
return $usages;
}