summaryrefslogtreecommitdiff
path: root/testsuite/tests/simplCore/should_compile/T21261.hs
diff options
context:
space:
mode:
authorSimon Peyton Jones <simonpj@microsoft.com>2022-07-28 14:55:16 +0100
committerMarge Bot <ben+marge-bot@smart-cactus.org>2022-09-28 17:49:09 -0400
commitaddeefc054b64286dfc231d394885bfdecfd261d (patch)
tree26a8f36029f18fc283843e9d2f2e6074d6fdb73a /testsuite/tests/simplCore/should_compile/T21261.hs
parent2a53ac1877bbd29de432c0aca442904e9da96c4e (diff)
downloadhaskell-addeefc054b64286dfc231d394885bfdecfd261d.tar.gz
Refactor UnfoldingSource and IfaceUnfolding
I finally got tired of the way that IfaceUnfolding reflected a previous structure of unfoldings, not the current one. This MR refactors UnfoldingSource and IfaceUnfolding to be simpler and more consistent. It's largely just a refactor, but in UnfoldingSource (which moves to GHC.Types.Basic, since it is now used in IfaceSyn too), I distinguish between /user-specified/ and /system-generated/ stable unfoldings. data UnfoldingSource = VanillaSrc | StableUserSrc -- From a user-specified pragma | StableSystemSrc -- From a system-generated unfolding | CompulsorySrc This has a minor effect in CSE (see the use of isisStableUserUnfolding in GHC.Core.Opt.CSE), which I tripped over when working on specialisation, but it seems like a Good Thing to know anyway.
Diffstat (limited to 'testsuite/tests/simplCore/should_compile/T21261.hs')
-rw-r--r--testsuite/tests/simplCore/should_compile/T21261.hs6
1 files changed, 6 insertions, 0 deletions
diff --git a/testsuite/tests/simplCore/should_compile/T21261.hs b/testsuite/tests/simplCore/should_compile/T21261.hs
index 167d3f0f86..888c2fed13 100644
--- a/testsuite/tests/simplCore/should_compile/T21261.hs
+++ b/testsuite/tests/simplCore/should_compile/T21261.hs
@@ -1,3 +1,9 @@
+{-# OPTIONS_GHC -fno-worker-wrapper #-}
+
+-- The -fno-worker-wrapper stops f1, f2 etc from worker/wrappering
+-- via CPR analysis, after which they inline ane confuse the
+-- detection of eta-expansion or otherwise
+
module T21261 where
-- README: The convention here is that bindings starting with 'yes' should be