From 37df96e3e7addd964361e920f2d0f99c75d86feb Mon Sep 17 00:00:00 2001 From: Leonardo de Moura Date: Fri, 9 Nov 2018 10:15:47 -0800 Subject: [PATCH] feat(library/compiler/csimp): inline recursive functions marked with `[inline_if_reduce]` --- src/library/compiler/csimp.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/library/compiler/csimp.cpp b/src/library/compiler/csimp.cpp index 0e572eeec2..5b257ed1c0 100644 --- a/src/library/compiler/csimp.cpp +++ b/src/library/compiler/csimp.cpp @@ -1266,7 +1266,7 @@ class csimp_fn { is_constant(e))) { /* We only inline constants if they are marked with the `[inline]` or `[inline_if_reduce]` attrs */ return none_expr(); } - if (is_recursive(c)) return none_expr(); + if (!inline_if_reduce_attr && is_recursive(c)) return none_expr(); expr new_fn = instantiate_value_lparams(*info, const_levels(fn)); if (inline_if_reduce_attr && !inline_attr) { return beta_reduce_if_not_cases(new_fn, e, is_let_val);