public bool TryGetName(VariableDefinition variable, out string name)
{
name = null;
var has_name = false;
var unique_name = "";
foreach (var scope in GetScopes ()) {
string slot_name;
if (!scope.TryGetName (variable, out slot_name))
continue;
if (!has_name) {
has_name = true;
unique_name = slot_name;
continue;
}
if (unique_name != slot_name)
return false;
}
name = unique_name;
return has_name;
}