From 0edeaa123bbcbcb7c6adad79ba5e888fc4214943 Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Fri, 15 Oct 2010 09:49:25 +0000 Subject: [PATCH] InlinePrag needs an arity only for INLINE, not INLINABLE This doesn't fix anything (we think), but it's morally correct. --- compiler/typecheck/TcBinds.lhs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/compiler/typecheck/TcBinds.lhs b/compiler/typecheck/TcBinds.lhs index a191b82..b1ad0d4 100644 --- a/compiler/typecheck/TcBinds.lhs +++ b/compiler/typecheck/TcBinds.lhs @@ -495,7 +495,9 @@ mkPragFun sigs binds = \n -> lookupNameEnv prag_env n `orElse` [] get_sig _ = Nothing add_arity (L _ n) inl_prag -- Adjust inl_sat field to match visible arity of function - | Just ar <- lookupNameEnv ar_env n = inl_prag { inl_sat = Just ar } + | Just ar <- lookupNameEnv ar_env n, + Inline <- inl_inline inl_prag = inl_prag { inl_sat = Just ar } + -- add arity only for real INLINE pragmas, not INLINABLE | otherwise = inl_prag prag_env :: NameEnv [LSig Name] -- 1.7.10.4