예제 #1
0
 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);
     }));
 }
예제 #2
0
        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);
            }));
        }