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

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

private ProcessFieldInitializer ( Field node ) : void
node Field
Результат void
        void ProcessFieldInitializer(Field node)
        {
            Expression initializer = node.Initializer;
            if (null == initializer) return;

            //do not unnecessarily assign fields to default values
            switch (initializer.NodeType)
            {
                case NodeType.NullLiteralExpression:
                    node.Initializer = null;
                    return;
                case NodeType.IntegerLiteralExpression:
                    if (0 == ((IntegerLiteralExpression) initializer).Value) {
                        node.Initializer = null;
                        return;
                    }
                    break;
                case NodeType.BoolLiteralExpression:
                    if (false == ((BoolLiteralExpression) initializer).Value) {
                        node.Initializer = null;
                        return;
                    }
                    break;
                case NodeType.DoubleLiteralExpression:
                    if (0.0f == ((DoubleLiteralExpression) initializer).Value) {
                        node.Initializer = null;
                        return;
                    }
                    break;
            }

            Method method = GetInitializerMethod(node);
            method.Body.Add(
                CodeBuilder.CreateAssignment(
                    initializer.LexicalInfo,
                    CodeBuilder.CreateReference(node),
                    initializer));
            node.Initializer = null;
        }
ProcessMethodBodies