Negative header ids should be valid
[mono.git] / mcs / mcs / field.cs
index cf854ce196a924c12c95e7acd112f06ce99c1612..46ca117aa42d80d473808aa27124d603a9f60090 100644 (file)
@@ -233,7 +233,7 @@ namespace Mono.CSharp
                {
                        if (member_type.BuiltinType == BuiltinTypeSpec.Type.Dynamic) {
                                Module.PredefinedAttributes.Dynamic.EmitAttribute (FieldBuilder);
-                       } else if (!(Parent is CompilerGeneratedClass) && member_type.HasDynamicElement) {
+                       } else if (!Parent.IsCompilerGenerated && member_type.HasDynamicElement) {
                                Module.PredefinedAttributes.Dynamic.EmitAttribute (FieldBuilder, member_type, Location);
                        }
 
@@ -636,13 +636,12 @@ namespace Mono.CSharp
                        }
 
                        if (initializer != null) {
-                               Parent.RegisterFieldForInitialization (this,
-                                       new FieldInitializer (spec, initializer, this));
+                               Parent.RegisterFieldForInitialization (this, new FieldInitializer (this, initializer, TypeExpression.Location));
                        }
 
                        if (declarators != null) {
-                               var t = new TypeExpression (MemberType, TypeExpression.Location);
                                foreach (var d in declarators) {
+                                       var t = new TypeExpression (MemberType, d.Name.Location);
                                        var f = new Field (Parent, t, ModFlags, new MemberName (d.Name.Value, d.Name.Location), OptAttributes);
                                        if (d.Initializer != null)
                                                f.initializer = d.Initializer;