Remove a bogus warning
authorSimon Peyton Jones <simonpj@microsoft.com>
Tue, 9 Jan 2018 13:51:40 +0000 (13:51 +0000)
committerSimon Peyton Jones <simonpj@microsoft.com>
Tue, 9 Jan 2018 16:25:53 +0000 (16:25 +0000)
The new comment explains why this warning can
legitimately fire, so I've removed it entirely.
Lint will cath any bad cases.

compiler/simplCore/OccurAnal.hs

index 2be47fb..bcc8410 100644 (file)
@@ -2169,7 +2169,12 @@ markJoinOneShots mb_join_arity bndrs
       Just n  -> go n bndrs
  where
    go 0 bndrs  = bndrs
-   go _ []     = WARN( True, ppr mb_join_arity <+> ppr bndrs ) []
+   go _ []     = [] -- This can legitimately happen.
+                    -- e.g.    let j = case ... in j True
+                    -- This will become an arity-1 join point after the
+                    -- simplifier has eta-expanded it; but it may not have
+                    -- enough lambdas /yet/. (Lint checks that JoinIds do
+                    -- have enough lambdas.)
    go n (b:bs) = b' : go (n-1) bs
      where
        b' | isId b    = setOneShotLambda b