projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge pull request #2698 from esdrubal/iosxmlarray
[mono.git]
/
mcs
/
mcs
/
ecore.cs
diff --git
a/mcs/mcs/ecore.cs
b/mcs/mcs/ecore.cs
index 52da19a1b970748d49991d1a2b47a7bbef11a061..a581906d3e9b82d7ffd04ab74c4c1f8275e7efa5 100644
(file)
--- a/
mcs/mcs/ecore.cs
+++ b/
mcs/mcs/ecore.cs
@@
-3682,7
+3682,7
@@
namespace Mono.CSharp {
public virtual MemberExpr ResolveMemberAccess (ResolveContext ec, Expression left, SimpleName original)
{
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");
}
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);
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
var c = constant.GetConstant (rc);
// Creates reference expression to the constant value