public ImmutableHashSet <object> VisitZenOrExpr(ZenOrExpr expression, Unit parameter) { return(LookupOrCompute(expression, () => { var x = expression.Expr1.Accept(this, parameter); var y = expression.Expr2.Accept(this, parameter); return x.Union(y); })); }
public Expression VisitZenOrExpr(ZenOrExpr expression, ExpressionConverterEnvironment parameter) { return(LookupOrCompute(expression, () => { var left = CodeGenerator.CompileToBlock( expression.Expr1, parameter, this.SubexpressionCache, this.currentMatchUnrollingDepth, this.maxMatchUnrollingDepth); var right = CodeGenerator.CompileToBlock( expression.Expr2, parameter, this.SubexpressionCache, this.currentMatchUnrollingDepth, this.maxMatchUnrollingDepth); return Expression.OrElse(left, right); })); }