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;
}
var results = new List<string> ();
- if (expr is Namespace) {
- Namespace nexpr = expr as Namespace;
+ var nexpr = expr as NamespaceExpression;
+ if (nexpr != null) {
string namespaced_partial;
if (partial_name == null)
- namespaced_partial = nexpr.Name;
+ namespaced_partial = nexpr.Namespace.Name;
else
- namespaced_partial = nexpr.Name + "." + partial_name;
+ namespaced_partial = nexpr.Namespace.Name + "." + partial_name;
rc.CurrentMemberDefinition.GetCompletionStartingWith (namespaced_partial, results);
if (partial_name != 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]);
+ }
+ }
}