static Dictionary<string, List<MethodSignature>> ComputeOverloads(List<MethodSignature> sigs)
{
//HashSet<String> overloadNames = new HashSet<string>();
Dictionary<string,List<MethodSignature>> name2SigMap = new Dictionary<string,List<MethodSignature>>();
foreach (MethodSignature sig in sigs)
{
if (!name2SigMap.ContainsKey(sig.Name))
name2SigMap.Add(sig.Name, new List<MethodSignature>());
name2SigMap[sig.Name].Add(sig);
}
List<String> okKeys = new List<string>();
foreach (KeyValuePair<string, List<MethodSignature>> kv in name2SigMap)
if (kv.Value.Count <= 1)
okKeys.Add(kv.Key);
foreach (string okKey in okKeys)
name2SigMap.Remove(okKey);
return name2SigMap;
}