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

◆ CachesResult()

bool System.Xml.Xsl.IlGen.XmlILVisitor.CachesResult ( QilNode nd)
inlineprivate

Definition at line 3087 of file XmlILVisitor.cs.

3088 {
3089 switch (nd.NodeType)
3090 {
3091 case QilNodeType.Let:
3092 case QilNodeType.Parameter:
3093 case QilNodeType.Invoke:
3094 case QilNodeType.XsltInvokeLateBound:
3095 case QilNodeType.XsltInvokeEarlyBound:
3096 return !nd.XmlType.IsSingleton;
3097 case QilNodeType.Filter:
3098 {
3099 OptimizerPatterns optimizerPatterns = OptimizerPatterns.Read(nd);
3100 return optimizerPatterns.MatchesPattern(OptimizerPatternName.EqualityIndex);
3101 }
3102 case QilNodeType.DocOrderDistinct:
3103 {
3104 if (nd.XmlType.IsSingleton)
3105 {
3106 return false;
3107 }
3108 OptimizerPatterns optimizerPatterns = OptimizerPatterns.Read(nd);
3109 if (!optimizerPatterns.MatchesPattern(OptimizerPatternName.JoinAndDod))
3110 {
3111 return !optimizerPatterns.MatchesPattern(OptimizerPatternName.DodReverse);
3112 }
3113 return false;
3114 }
3115 case QilNodeType.TypeAssert:
3116 {
3118 if (CachesResult(qilTargetType.Source))
3119 {
3121 }
3122 return false;
3123 }
3124 default:
3125 return false;
3126 }
3127 }

References System.Xml.Xsl.IlGen.OptimizerPatterns.Read().

Referenced by System.Xml.Xsl.IlGen.XmlILVisitor.VisitIsEmpty(), and System.Xml.Xsl.IlGen.XmlILVisitor.VisitLength().