tcPrag info (HsNoCafRefs) = returnTc (info `setCafInfo` NoCafRefs)
tcPrag info (HsCprInfo cpr_info) = returnTc (info `setCprInfo` cpr_info)
- tcPrag info (HsUnfold inline_prag maybe_expr)
- = (case maybe_expr of
- Just expr -> tcPragExpr unf_env name in_scope_vars expr
- Nothing -> returnNF_Tc Nothing
- ) `thenNF_Tc` \ maybe_expr' ->
+ tcPrag info (HsUnfold inline_prag expr)
+ = tcPragExpr unf_env name in_scope_vars expr `thenNF_Tc` \ maybe_expr' ->
let
-- maybe_expr doesn't get looked at if the unfolding
-- is never inspected; so the typecheck doesn't even happen
unfold_info = case maybe_expr' of
Nothing -> noUnfolding
- Just expr' -> mkUnfolding expr'
+ Just expr' -> mkTopUnfolding expr'
info1 = info `setUnfoldingInfo` unfold_info
info2 = info1 `setInlinePragInfo` inline_prag
in
let
-- Watch out! We can't pull on unf_env too eagerly!
info' = case explicitLookupValue unf_env worker_name of
- Just worker_id -> info `setUnfoldingInfo` mkUnfolding (wrap_fn worker_id)
+ Just worker_id -> info `setUnfoldingInfo` mkTopUnfolding (wrap_fn worker_id)
`setWorkerInfo` Just worker_id
Nothing -> pprTrace "tcWorkerInfo failed:" (ppr worker_name) info