public override void CompileCondition(Gen ifTrue, Gen ifFalse, Gen ifOther) { for (int i = es.Length - 1; i >= 0; i--) { // These declarations are needed to capture rvalues rather than lvalues: CGExpr ei = es[i]; Gen localIfFalse = ifFalse; ifFalse = new Gen(delegate { ei.CompileCondition(ifTrue, localIfFalse, ifOther); }); } ifFalse.Generate(ilg); }
public override void CompileCondition(Gen ifTrue, Gen ifFalse, Gen ifOther) { if (IsCacheNeeded) { // Call CompileToDoubleProper via base class CompileCondition base.CompileCondition(ifTrue, ifFalse, ifOther); } else { expr.CompileCondition(ifTrue, ifFalse, ifOther); } }