Merge pull request #2698 from esdrubal/iosxmlarray
[mono.git] / mcs / mcs / ecore.cs
index 52da19a1b970748d49991d1a2b47a7bbef11a061..a581906d3e9b82d7ffd04ab74c4c1f8275e7efa5 100644 (file)
@@ -3682,7 +3682,7 @@ namespace Mono.CSharp {
 
                public virtual MemberExpr ResolveMemberAccess (ResolveContext ec, Expression left, SimpleName original)
                {
-                       if (left != null && !ConditionalAccess && left.IsNull && TypeSpec.IsReferenceType (left.Type)) {
+                       if (left != null && !ConditionalAccess && !ec.HasSet (ResolveContext.Options.NameOfScope) && left.IsNull && TypeSpec.IsReferenceType (left.Type)) {
                                ec.Report.Warning (1720, 1, left.Location,
                                        "Expression will always cause a `{0}'", "System.NullReferenceException");
                        }
@@ -6059,6 +6059,12 @@ namespace Mono.CSharp {
                        ResolveInstanceExpression (rc, null);
                        DoBestMemberChecks (rc, constant);
 
+                       if (rc.HasSet (ResolveContext.Options.NameOfScope)) {
+                               eclass = ExprClass.Value;
+                               type = constant.MemberType;
+                               return this;
+                       }
+
                        var c = constant.GetConstant (rc);
 
                        // Creates reference expression to the constant value