Author: marek
Date: 2005-04-27 02:53:12 -0400 (Wed, 27 Apr 2005)
New Revision: 43640
Modified:
trunk/mcs/mcs/ChangeLog
trunk/mcs/mcs/class.cs
trunk/mcs/mcs/ecore.cs
Log:
2005-04-27 Marek Safar <[EMAIL PROTECTED]>
Fix #74378
* class.cs (EmitFieldInitializers): Use FieldExpr in initializer.
* ecore.cs (FieldExpr): Add a new ctor with in_initializer.
(FieldExpr.DoResolve): Obsolete members are ignored for field
initializers.
Modified: trunk/mcs/mcs/ChangeLog
===================================================================
--- trunk/mcs/mcs/ChangeLog 2005-04-27 06:31:02 UTC (rev 43639)
+++ trunk/mcs/mcs/ChangeLog 2005-04-27 06:53:12 UTC (rev 43640)
@@ -1,3 +1,12 @@
+2005-04-27 Marek Safar <[EMAIL PROTECTED]>
+
+ Fix #74378
+ * class.cs (EmitFieldInitializers): Use FieldExpr in initializer.
+
+ * ecore.cs (FieldExpr): Add a new ctor with in_initializer.
+ (FieldExpr.DoResolve): Obsolete members are ignored for field
+ initializers.
+
2005-04-26 Marek Safar <[EMAIL PROTECTED]>
* attribute.cs (AreOverloadedMethodParamsClsCompliant): Add array
Modified: trunk/mcs/mcs/class.cs
===================================================================
--- trunk/mcs/mcs/class.cs 2005-04-27 06:31:02 UTC (rev 43639)
+++ trunk/mcs/mcs/class.cs 2005-04-27 06:53:12 UTC (rev 43640)
@@ -883,7 +883,7 @@
return false;
Location l = f.Location;
- FieldExpr fe = new FieldExpr (f.FieldBuilder,
l);
+ FieldExpr fe = new FieldExpr (f.FieldBuilder,
l, true);
fe.InstanceExpression = instance_expr;
ExpressionStatement a = new Assign (fe, e, l);
Modified: trunk/mcs/mcs/ecore.cs
===================================================================
--- trunk/mcs/mcs/ecore.cs 2005-04-27 06:31:02 UTC (rev 43639)
+++ trunk/mcs/mcs/ecore.cs 2005-04-27 06:53:12 UTC (rev 43640)
@@ -2661,6 +2661,13 @@
LocalTemporary temp;
bool prepared;
+ bool in_initializer;
+
+ public FieldExpr (FieldInfo fi, Location l, bool
in_initializer):
+ this (fi, l)
+ {
+ this.in_initializer = in_initializer;
+ }
public FieldExpr (FieldInfo fi, Location l)
{
@@ -2829,18 +2836,20 @@
return null;
}
- ObsoleteAttribute oa;
- FieldBase f = TypeManager.GetField (FieldInfo);
- if (f != null) {
- oa = f.GetObsoleteAttribute (f.Parent);
- if (oa != null)
- AttributeTester.Report_ObsoleteMessage
(oa, f.GetSignatureForError (), loc);
+ if (!in_initializer) {
+ ObsoleteAttribute oa;
+ FieldBase f = TypeManager.GetField (FieldInfo);
+ if (f != null) {
+ oa = f.GetObsoleteAttribute (f.Parent);
+ if (oa != null)
+
AttributeTester.Report_ObsoleteMessage (oa, f.GetSignatureForError (), loc);
- // To be sure that type is external because we do not
register generated fields
- } else if (!(FieldInfo.DeclaringType is TypeBuilder))
{
- oa = AttributeTester.GetMemberObsoleteAttribute
(FieldInfo);
- if (oa != null)
- AttributeTester.Report_ObsoleteMessage
(oa, TypeManager.GetFullNameSignature (FieldInfo), loc);
+ // To be sure that type is external
because we do not register generated fields
+ } else if (!(FieldInfo.DeclaringType is
TypeBuilder)) {
+ oa =
AttributeTester.GetMemberObsoleteAttribute (FieldInfo);
+ if (oa != null)
+
AttributeTester.Report_ObsoleteMessage (oa, TypeManager.GetFullNameSignature
(FieldInfo), loc);
+ }
}
if (ec.CurrentAnonymousMethod != null){
_______________________________________________
Mono-patches maillist - [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches