private XmlQueryType ChooseBestType(VarPar var)
{
if (IsDebug || !InferXPathTypes)
{
return T.ItemS;
}
switch (var.Flags & XslFlags.TypeFilter)
{
case XslFlags.String: return T.StringX; ;
case XslFlags.Number: return T.DoubleX;
case XslFlags.Boolean: return T.BooleanX;
case XslFlags.Node: return T.NodeNotRtf;
case XslFlags.Nodeset: return T.NodeNotRtfS;
case XslFlags.Rtf: return T.Node;
case XslFlags.Node | XslFlags.Rtf: return T.Node;
case XslFlags.Node | XslFlags.Nodeset: return T.NodeNotRtfS;
case XslFlags.Nodeset | XslFlags.Rtf: return T.NodeS;
case XslFlags.Node | XslFlags.Nodeset | XslFlags.Rtf: return T.NodeS;
default: return T.ItemS;
}
}