public FieldDeclarationNode(ClassNode parent, DeclarationInfo declaration, SequencePoint point)
            : base(parent.Parser, parent, point)
        {
            this.IsStatic      = true;
            this.initializer   = declaration.Initializer;
            this.Name          = declaration.SymbolName.GetSingleSymbolOrThrow();
            this.TypeReference = TypeNode.Parse(this, declaration.Type);
            this.modifiers     = declaration.Modifiers;
            this.field         = new Lazy <FieldDefinition>(() => new FieldDefinition(Name, GetAttributes(), TypeReference));

            if (TypeReference.IsAuto() && declaration.Initializer != null && declaration.Initializer.IsFunctionDeclaration())
            {
                TypeReference = FunctionDeclarationNode.ParseFunctorType(parent, declaration.Initializer);
            }

            if (!TypeReference.IsAuto())
            {
                DeclareField();
            }
        }