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
}
if (targs != null) {
- if (!targs.Resolve (rc))
+ if (!targs.Resolve (rc, true))
return null;
}
// Nothing
}
}
+
+ public class EmptyCompletion : CompletingExpression
+ {
+ protected override void CloneTo (CloneContext clonectx, Expression target)
+ {
+ }
+
+ protected override Expression DoResolve (ResolveContext rc)
+ {
+ throw new CompletionResult ("", new string [0]);
+ }
+ }
}