summaryrefslogtreecommitdiff
path: root/compiler/iface/TcIface.lhs
diff options
context:
space:
mode:
authorJoachim Breitner <mail@joachim-breitner.de>2014-10-28 13:02:40 +0100
committerJoachim Breitner <mail@joachim-breitner.de>2014-11-02 19:03:01 +0100
commitc001bde73e38904ed161b0b61b240f99a3b6f48d (patch)
treef79a9eb3097f35e3c86e9105ff9305794a66351b /compiler/iface/TcIface.lhs
parent96c22d9e3591d49a9435e7961563ccd55c0bec0f (diff)
downloadhaskell-c001bde73e38904ed161b0b61b240f99a3b6f48d.tar.gz
Put one-Shot info in the interface
Differential Revision: https://phabricator.haskell.org/D391
Diffstat (limited to 'compiler/iface/TcIface.lhs')
-rw-r--r--compiler/iface/TcIface.lhs7
1 files changed, 5 insertions, 2 deletions
diff --git a/compiler/iface/TcIface.lhs b/compiler/iface/TcIface.lhs
index 424a46c232..4e2cfd5a76 100644
--- a/compiler/iface/TcIface.lhs
+++ b/compiler/iface/TcIface.lhs
@@ -1093,9 +1093,12 @@ tcIfaceExpr (IfaceTuple boxity args) = do
con_id = dataConWorkId (tupleCon boxity arity)
-tcIfaceExpr (IfaceLam bndr body)
+tcIfaceExpr (IfaceLam (bndr, os) body)
= bindIfaceBndr bndr $ \bndr' ->
- Lam bndr' <$> tcIfaceExpr body
+ Lam (tcIfaceOneShot os bndr') <$> tcIfaceExpr body
+ where
+ tcIfaceOneShot IfaceOneShot b = setOneShotLambda b
+ tcIfaceOneShot _ b = b
tcIfaceExpr (IfaceApp fun arg)
= tcIfaceApps fun arg