[mcs] Use probing like aproach for member access completion
authorMarek Safar <marek.safar@gmail.com>
Fri, 15 Jan 2016 08:58:31 +0000 (09:58 +0100)
committerMarek Safar <marek.safar@gmail.com>
Fri, 15 Jan 2016 09:00:12 +0000 (10:00 +0100)
mcs/mcs/complete.cs

index 749c4efcb8a4c99e70920f64be7d008a068e2d51..b1d2993256a517fc96483d5be1af20d2b09f332c 100644 (file)
@@ -115,7 +115,16 @@ namespace Mono.CSharp {
                        const ResolveFlags flags = ResolveFlags.VariableOrValue | ResolveFlags.Type;
 
                        if (sn != null) {
-                               expr = sn.LookupNameExpression (rc, MemberLookupRestrictions.ReadAccess | MemberLookupRestrictions.ExactArity);
+                               var errors_printer = new SessionReportPrinter ();
+                               var old = rc.Report.SetPrinter (errors_printer);
+                               try {
+                                       expr = sn.LookupNameExpression (rc, MemberLookupRestrictions.ReadAccess | MemberLookupRestrictions.ExactArity);
+                               } finally {
+                                       rc.Report.SetPrinter (old);
+                               }
+
+                               if (errors_printer.ErrorsCount != 0)
+                                       return null;
 
                                //
                                // Resolve expression which does have type set as we need expression type