Don't print null on exit
[mono.git] / mcs / mcs / complete.cs
index ed2f1ba2a6d369a3e3c6f499b22598285460e034..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))
@@ -113,8 +113,7 @@ namespace Mono.CSharp {
                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;
@@ -156,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)
@@ -194,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)