//
// Same name conflict in different namespace containers
//
- var conflict = ns.GetAllTypes (name);
+ var conflict = ns.GetAllTypes (mn.Name);
if (conflict != null) {
foreach (var e in conflict) {
if (e.Arity == mn.Arity) {
continue;
if (mode == LookupMode.Normal)
- throw new NotImplementedException ();
+ continue;
return null;
}
continue;
}
- entry.Define (this);
+ try {
+ entry.Define (this);
+ } finally {
+ //
+ // It's needed for repl only, when using clause cannot be resolved don't hold it in
+ // global list which is resolved for every evaluation
+ //
+ if (entry.ResolvedExpression == null) {
+ clauses.RemoveAt (i--);
+ }
+ }
- //
- // It's needed for repl only, when using clause cannot be resolved don't hold it in
- // global list which is resolved for each evaluation
- //
- if (entry.ResolvedExpression == null) {
- clauses.RemoveAt (i--);
+ if (entry.ResolvedExpression == null)
continue;
- }
var using_ns = entry.ResolvedExpression as NamespaceExpression;
if (using_ns == null) {
for (int i = 0; i < clauses.Count; ++i) {
var entry = clauses[i];
if (entry.Alias != null) {
- aliases.Add (entry.Alias.Value, (UsingAliasNamespace) entry);
+ aliases[entry.Alias.Value] = (UsingAliasNamespace) entry;
}
}
}
if (resolved != null) {
var compiler = ctx.Module.Compiler;
var type = resolved.Type;
+ resolved = null;
compiler.Report.SymbolRelatedToPreviousError (type);
compiler.Report.Error (138, Location,