public static void AppendResults (List<string> results, string prefix, IEnumerable<string> names)
{
foreach (string name in names) {
- if (name == null || prefix == null)
+ if (name == null)
continue;
- if (!name.StartsWith (prefix))
+ if (prefix != null && !name.StartsWith (prefix))
continue;
if (results.Contains (name))
protected override Expression DoResolve (ResolveContext ec)
{
Expression expr_resolved = expr.Resolve (ec,
- ResolveFlags.VariableOrValue | ResolveFlags.Type |
- ResolveFlags.Intermediate);
+ ResolveFlags.VariableOrValue | ResolveFlags.Type);
if (expr_resolved == null)
return null;
AppendResults (results, partial_name, r);
}
- throw new CompletionResult (partial_name == null ? "" : partial_name, results.ToArray ());
+ throw new CompletionResult (partial_name == null ? "" : partial_name, results.Distinct ().ToArray ());
}
protected override void CloneTo (CloneContext clonectx, Expression t)
results = temp;
}
- throw new CompletionResult (partial_name == null ? "" : partial_name, results.ToArray ());
+ throw new CompletionResult (partial_name == null ? "" : partial_name, results.Distinct ().ToArray ());
}
protected override void CloneTo (CloneContext clonectx, Expression t)