#pragma warning disable CS1591 public override IEnumerable <AssociativeNode> BuildOutputAst(List <AssociativeNode> inputAstNodes) { ClearErrorsAndWarnings(); AssociativeNode resultList; if (IsPartiallyApplied) { resultList = AstFactory.BuildNullNode(); } else { if (Selected.Any(v => v.IsTransient) || Selected.Count == 0) { // Build from persistent selection resultList = AstFactory.BuildFunctionCall( new Func <object[], string[], bool, object[]>(DynamicArgumentDelegation.ExludeBySerializationValue), new List <AssociativeNode>() { inputAstNodes[0], AstFactory.BuildExprList(SelectedValue.Select(v => AstFactory.BuildStringNode(v) as AssociativeNode).ToList()), AstFactory.BuildBooleanNode(false) }); } else { // Build from live AST resultList = AstFactory.BuildExprList( Items.Where(c => !Selected.Contains(c)).Select(c => c.ToAstNode()).ToList()); } } return(new AssociativeNode[] { AstFactory.BuildAssignment(GetAstIdentifierForOutputIndex(0), resultList) }); }