Improved DateTime parsing of years.
[mono.git] / mcs / mcs / namespace.cs
index 5a368ee05b1a39e73e7708a247bde5c331ad4fa8..1af77f12fd6674932d081d7a7b282113f3415505 100644 (file)
@@ -249,7 +249,7 @@ namespace Mono.CSharp {
                                return null;
 
                        foreach (var ts in found) {
-                               if (ts.Arity == arity) {
+                               if (ts.Arity == arity || mode == LookupMode.NameOf) {
                                        if (best == null) {
                                                if ((ts.Modifiers & Modifiers.INTERNAL) != 0 && !ts.MemberDefinition.IsInternalAsPublic (ctx.Module.DeclaringAssembly) && mode != LookupMode.IgnoreAccessibility)
                                                        continue;
@@ -311,6 +311,12 @@ namespace Mono.CSharp {
                        if (arity == 0 && mode == LookupMode.Normal)
                                cached_types.Add (name, best);
 
+                       if (best != null) {
+                               var dep = best.GetMissingDependencies ();
+                               if (dep != null)
+                                       ImportedTypeDefinition.Error_MissingDependency (ctx, dep, loc);
+                       }
+
                        return best;
                }
 
@@ -1371,7 +1377,7 @@ namespace Mono.CSharp {
 
                public virtual void Define (NamespaceContainer ctx)
                {
-                       resolved = expr.ResolveAsTypeOrNamespace (ctx);
+                       resolved = expr.ResolveAsTypeOrNamespace (ctx, false);
                        var ns = resolved as NamespaceExpression;
                        if (ns != null)
                                return;
@@ -1549,7 +1555,7 @@ namespace Mono.CSharp {
                        // We achieve that by introducing alias-context which redirect any local
                        // namespace or type resolve calls to parent namespace
                        //
-                       resolved = NamespaceExpression.ResolveAsTypeOrNamespace (new AliasContext (ctx));
+                       resolved = NamespaceExpression.ResolveAsTypeOrNamespace (new AliasContext (ctx), false);
                }
        }
 }