Builder: Defer inlining of flush to phase 1
authorBen Gamari <ben@smart-cactus.org>
Wed, 30 Mar 2016 09:28:25 +0000 (11:28 +0200)
committerBen Gamari <ben@smart-cactus.org>
Wed, 30 Mar 2016 09:28:25 +0000 (11:28 +0200)
Otherwise the flush/flush rule may not have an opportunity to fire.

Data/Text/Internal/Builder.hs

index aa07fd6..f7309d7 100644 (file)
@@ -242,6 +242,8 @@ flush = Builder $ \ k buf@(Buffer p o u l) ->
                 !t = Text arr o u
             ts <- inlineInterleaveST (k b)
             return $! t : ts
+{-# INLINE [1] flush #-}
+-- defer inlining so that flush/flush rule may fire.
 
 ------------------------------------------------------------------------