System\Xml\XPath\Internal\QueryBuilder.cs (43)
56private Query ProcessAxis(Axis root, Flags flags, out Props props)
87props = Props.None;
90if ((props & Props.NonFlat) != 0)
94props |= Props.NonFlat;
109props = Props.None;
117props |= Props.NonFlat;
121props |= Props.NonFlat;
124if ((props & Props.NonFlat) != 0)
144if ((props & Props.NonFlat) != 0)
149props |= Props.NonFlat;
159if ((props & Props.NonFlat) != 0)
164props |= Props.NonFlat;
168props |= Props.NonFlat;
172props |= Props.NonFlat;
176if ((props & Props.NonFlat) != 0)
215private Query ProcessFilter(Filter root, Flags flags, out Props props)
219Props propsCond;
224(propsCond & (Props.HasPosition | Props.HasLast)) != 0
227propsCond |= Props.HasPosition;
245props &= ~Props.PosFilter;
247if ((propsCond & Props.HasPosition) != 0)
250props |= Props.PosFilter;
256if (qyFilter != null && (propsCond & Props.HasPosition) == 0 && qyFilter.Condition.StaticType != XPathResultType.Any)
268if ((props & Props.PosFilter) != 0 && qyInput is DocumentOrderQuery)
276if ((propsCond & Props.HasPosition) != 0)
282else if ((propsCond & Props.HasLast) != 0)
290if (merge && (props & Props.PosFilter) != 0)
305return new FilterQuery(qyInput, cond, /*noPosition:*/(propsCond & Props.HasPosition) == 0);
308private Query? ProcessOperator(Operator root, out Props props)
310Props props1, props2;
333props |= Props.NonFlat;
349private Query ProcessFunction(Function root, out Props props)
351props = Props.None;
357props |= Props.HasLast;
361props |= Props.HasPosition;
369props |= Props.NonFlat;
433props |= Props.NonFlat;
440private List<Query> ProcessArguments(List<AstNode> args, out Props props)
444props = Props.None;
447Props argProps;
457private Query ProcessNode(AstNode root, Flags flags, out Props props)
466props = Props.None;