protected override QilNode VisitNegate(QilUnary local0) {
QilNode local1 = local0[0];
if (this[XmlILOptimization.FoldNone]) {
if ( (object) ( (local1).XmlType ) == (object) XmlQueryTypeFactory.None ) {
if (AllowReplace(XmlILOptimization.FoldNone, local0)) {
return Replace(XmlILOptimization.FoldNone, local0, VisitNop(f.Nop(local1)));
}
}
}
if (this[XmlILOptimization.EliminateNegate]) {
if (local1.NodeType == QilNodeType.LiteralDecimal) {
decimal local2 = (decimal)((QilLiteral)local1).Value;
if (AllowReplace(XmlILOptimization.EliminateNegate, local0)) {
return Replace(XmlILOptimization.EliminateNegate, local0, VisitLiteralDecimal(f.LiteralDecimal( -local2 )));
}
}
}
if (this[XmlILOptimization.EliminateNegate]) {
if (local1.NodeType == QilNodeType.LiteralDouble) {
double local2 = (double)((QilLiteral)local1).Value;
if (AllowReplace(XmlILOptimization.EliminateNegate, local0)) {
return Replace(XmlILOptimization.EliminateNegate, local0, VisitLiteralDouble(f.LiteralDouble( -local2 )));
}
}
}
if (this[XmlILOptimization.EliminateNegate]) {
if (local1.NodeType == QilNodeType.LiteralInt32) {
int local2 = (int)((QilLiteral)local1).Value;
if (AllowReplace(XmlILOptimization.EliminateNegate, local0)) {
return Replace(XmlILOptimization.EliminateNegate, local0, VisitLiteralInt32(f.LiteralInt32( -local2 )));
}
}
}
if (this[XmlILOptimization.EliminateNegate]) {
if (local1.NodeType == QilNodeType.LiteralInt64) {
long local2 = (long)((QilLiteral)local1).Value;
if (AllowReplace(XmlILOptimization.EliminateNegate, local0)) {
return Replace(XmlILOptimization.EliminateNegate, local0, VisitLiteralInt64(f.LiteralInt64( -local2 )));
}
}
}
return NoReplace(local0);
}