protected internal override void CheckSemantics(AstHelper astHelper) { TypeName.CheckSemantics(astHelper); Name.CheckSemantics(astHelper); _parameter = MAst.Parameter(Type); }
protected internal override void CheckSemantics(AstHelper astHelper) { TypeName.CheckSemantics(astHelper); string result = "#result"; _inner = new LetInExpression { VariableDeclarations = new List <VariableDeclarationBase> { new VariableDeclarationExpression { VariableName = new MemberIdentifierNode { Name = result }, Value = new NewExpression(TypeName.ReferencedType) } }, Body = new ListSemiExpression(from field in Fields select new AssignExpression { Left = new FieldAccessExpression { FieldName = field.FieldName, Target = new VariableAccessExpression { VariableName = result } }, Right = field.Value, Start = field.Start }) { new VariableAccessExpression { VariableName = result } } }; _inner.CheckSemantics(astHelper); }