void HandleStaticFieldInitializers(IEnumerable <AstNode> members)
        {
            // Convert static constructor into field initializers if the class is BeforeFieldInit
            var staticCtor = members.OfType <ConstructorDeclaration>().FirstOrDefault(c => (c.Modifiers & Modifiers.Static) == Modifiers.Static);

            if (staticCtor != null)
            {
                MethodDef ctorMethodDef = staticCtor.Annotation <MethodDef>();
                if (ctorMethodDef != null && ctorMethodDef.DeclaringType.IsBeforeFieldInit)
                {
                    var mm = staticCtor.Annotation <MemberMapping>() ?? staticCtor.Body.Annotation <MemberMapping>();
                    Debug.Assert(mm != null);
                    while (true)
                    {
                        ExpressionStatement es = staticCtor.Body.Statements.FirstOrDefault() as ExpressionStatement;
                        if (es == null)
                        {
                            break;
                        }
                        AssignmentExpression assignment = es.Expression as AssignmentExpression;
                        if (assignment == null || assignment.Operator != AssignmentOperatorType.Assign)
                        {
                            break;
                        }
                        FieldDef fieldDef = assignment.Left.Annotation <IField>().ResolveFieldWithinSameModule();
                        if (fieldDef == null || !fieldDef.IsStatic)
                        {
                            break;
                        }
                        FieldDeclaration fieldDecl = members.OfType <FieldDeclaration>().FirstOrDefault(f => f.Annotation <FieldDef>() == fieldDef);
                        if (fieldDecl == null)
                        {
                            break;
                        }
                        var ilRanges = assignment.GetAllRecursiveILRanges();
                        assignment.RemoveAllILRangesRecursive();
                        var varInit = fieldDecl.Variables.Single();
                        varInit.Initializer = assignment.Right.Detach();
                        var ctorIlRanges = new List <Tuple <MemberMapping, List <ILRange> > >(1);
                        if (mm != null)
                        {
                            ctorIlRanges.Add(Tuple.Create(mm, ilRanges));
                        }
                        fieldDecl.AddAnnotation(ctorIlRanges);
                        es.Remove();
                    }
                    if (context.Settings.RemoveEmptyDefaultConstructors && staticCtor.Body.Statements.Count == 0)
                    {
                        staticCtor.Remove();
                    }
                }
            }
        }