public virtual string GetLocalNameProposal (string name, TextLocation loc, bool camelCase = true)
{
string baseName = (camelCase ? char.ToLower (name [0]) : char.ToUpper (name [0])) + name.Substring (1);
var node = RootNode.GetNodeAt(loc);
if (node == null)
return baseName;
var context = GetResolverStateBefore (node);
int number = -1;
string proposedName;
do {
proposedName = AppendNumberToName (baseName, number++);
} while (!(context.ResolveSimpleName (proposedName, EmptyList<IType>.Instance) is UnknownIdentifierResolveResult));
return proposedName;
}