clojure.lang.CljCompiler.Ast.CaseExpr.GenResult C# (CSharp) Метод

GenResult() приватный статический Метод

private static GenResult ( ObjExpr objx, GenContext context, clojure.lang.CljCompiler.Ast.Expr expr, bool genUnboxed, Type retType ) : Expression
objx ObjExpr
context GenContext
expr clojure.lang.CljCompiler.Ast.Expr
genUnboxed bool
retType System.Type
Результат Expression
        private static Expression GenResult(ObjExpr objx, GenContext context, Expr expr, bool genUnboxed, Type retType)
        {
            MaybePrimitiveExpr mbExpr = expr as MaybePrimitiveExpr;
            Expression result = genUnboxed && mbExpr != null
                ? mbExpr.GenCodeUnboxed(RHC.Expression, objx, context)
                : expr.GenCode(RHC.Expression, objx, context);

            if (result.Type != retType)
            {
                if (expr is ThrowExpr)
                {
                    // Fix type on the throw expression
                    UnaryExpression ur = (UnaryExpression)result;
                    result = Expression.Throw(ur.Operand, retType);
                }
                else result = Expression.Convert(result, retType);
            }

               return result;
        }