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(); } }