Boo.Lang.Compiler.Steps.ProcessMethodBodies.PreProcessFieldInitializer C# (CSharp) Метод

PreProcessFieldInitializer() приватный Метод

private PreProcessFieldInitializer ( Field node ) : void
node Field
Результат void
        private void PreProcessFieldInitializer(Field node)
        {
            Expression initializer = node.Initializer;
            if (node.IsFinal && node.IsStatic)
            {
                if (IsValidLiteralInitializer(initializer))
                {
                    ProcessLiteralField(node);
                    return;
                }
            }

            BlockExpression closure = node.Initializer as BlockExpression;
            if (closure != null)
            {
                InferClosureSignature(closure);
            }

            Method method = GetInitializerMethod(node);
            InternalMethod entity = (InternalMethod)method.Entity;

            ReferenceExpression temp = new ReferenceExpression(TempInitializerName);

            BinaryExpression assignment = new BinaryExpression(
                node.LexicalInfo,
                BinaryOperatorType.Assign,
                temp,
                initializer);

            ProcessNodeInMethodContext(entity, entity, assignment);
            method.Locals.RemoveByEntity(temp.Entity);

            IType initializerType = GetExpressionType(assignment.Right);
            ProcessFieldInitializerType(node, initializerType);
            node.Initializer = assignment.Right;
        }
ProcessMethodBodies