diff --git a/src-literatetests/14-extensions.blt b/src-literatetests/14-extensions.blt index e403568..12facda 100644 --- a/src-literatetests/14-extensions.blt +++ b/src-literatetests/14-extensions.blt @@ -130,3 +130,13 @@ func = do hello |] pure True + +############################################################################### +## OverloadedLabels +#test bare label +{-# LANGUAGE OverloadedLabels #-} +foo = #bar + +#test applied and composed label +{-# LANGUAGE OverloadedLabels #-} +foo = #bar . #baz $ fmap #foo xs diff --git a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs index 74a87af..8a499f2 100644 --- a/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs +++ b/src/Language/Haskell/Brittany/Internal/Layouters/Expr.hs @@ -55,9 +55,9 @@ layoutExpr lexpr@(L _ expr) = do HsRecFld{} -> do -- TODO briDocByExactInlineOnly "HsRecFld" lexpr - HsOverLabel{} -> do - -- TODO - briDocByExactInlineOnly "HsOverLabel{}" lexpr + HsOverLabel NoExt _reboundFromLabel name -> + let label = FastString.unpackFS name + in docLit . Text.pack $ '#' : label HsIPVar{} -> do -- TODO briDocByExactInlineOnly "HsOverLabel{}" lexpr