Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ VisitIsType()

override QilNode System.Xml.Xsl.IlGen.XmlILVisitor.VisitIsType ( QilTargetType ndIsType)
inlineprotectedvirtual

Reimplemented from System.Xml.Xsl.Qil.QilVisitor.

Definition at line 1892 of file XmlILVisitor.cs.

1893 {
1894 XmlQueryType xmlType = ndIsType.Source.XmlType;
1895 XmlQueryType targetType = ndIsType.TargetType;
1896 if (xmlType.IsSingleton && (object)targetType == XmlQueryTypeFactory.Node)
1897 {
1899 _helper.Call(XmlILMethods.ItemIsNode);
1901 return ndIsType;
1902 }
1903 if (MatchesNodeKinds(ndIsType, xmlType, targetType))
1904 {
1905 return ndIsType;
1906 }
1907 XmlTypeCode xmlTypeCode = (((object)targetType == XmlQueryTypeFactory.Double) ? XmlTypeCode.Double : (((object)targetType == XmlQueryTypeFactory.String) ? XmlTypeCode.String : (((object)targetType == XmlQueryTypeFactory.Boolean) ? XmlTypeCode.Boolean : (((object)targetType == XmlQueryTypeFactory.Node) ? XmlTypeCode.Node : XmlTypeCode.None))));
1908 if (xmlTypeCode != 0)
1909 {
1911 NestedVisitEnsureStack(ndIsType.Source, typeof(XPathItem), !xmlType.IsSingleton);
1913 _helper.Call(xmlType.IsSingleton ? XmlILMethods.ItemMatchesCode : XmlILMethods.SeqMatchesCode);
1915 return ndIsType;
1916 }
1918 NestedVisitEnsureStack(ndIsType.Source, typeof(XPathItem), !xmlType.IsSingleton);
1920 _helper.Call(xmlType.IsSingleton ? XmlILMethods.ItemMatchesType : XmlILMethods.SeqMatchesType);
1922 return ndIsType;
1923 }
bool MatchesNodeKinds(QilTargetType ndIsType, XmlQueryType typDerived, XmlQueryType typBase)
void ZeroCompare(QilNodeType relOp, bool isBoolVal)

References System.Xml.Xsl.IlGen.XmlILVisitor._helper, System.Xml.Xsl.XmlQueryTypeFactory.Boolean, System.Xml.Xsl.IlGen.GenerateHelper.Call(), System.Xml.Xsl.IlGen.StaticDataManager.DeclareXmlType(), System.Xml.Dictionary, System.Xml.Xsl.XmlQueryTypeFactory.Double, System.Xml.Xsl.XmlQueryType.IsSingleton, System.Xml.Xsl.IlGen.XmlILMethods.ItemIsNode, System.Xml.Xsl.IlGen.XmlILMethods.ItemMatchesCode, System.Xml.Xsl.IlGen.XmlILMethods.ItemMatchesType, System.Xml.Xsl.IlGen.GenerateHelper.LoadInteger(), System.Xml.Xsl.IlGen.GenerateHelper.LoadQueryRuntime(), System.Xml.Xsl.IlGen.XmlILVisitor.MatchesNodeKinds(), System.Xml.Xsl.IlGen.XmlILVisitor.NestedVisitEnsureStack(), System.Xml.Xsl.XmlQueryTypeFactory.Node, System.Xml.Xsl.IlGen.XmlILMethods.SeqMatchesCode, System.Xml.Xsl.IlGen.XmlILMethods.SeqMatchesType, System.Xml.Xsl.IlGen.GenerateHelper.StaticData, System.Xml.Xsl.XmlQueryTypeFactory.String, and System.Xml.Xsl.IlGen.XmlILVisitor.ZeroCompare().