Don't print null on exit
[mono.git] / mcs / mcs / complete.cs
index 675704110515198db6302164c6cd4eb9ef2e0ea5..ff45ac65b3dbefd6a50daade3277ab931ec3307a 100644 (file)
@@ -32,10 +32,10 @@ namespace Mono.CSharp {
                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))
@@ -155,7 +155,7 @@ namespace Mono.CSharp {
                                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)
@@ -193,7 +193,7 @@ namespace Mono.CSharp {
                                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)