Commit Graph

12 Commits (09d5b31831fa9e8ab82178ebe02d49f6062d675d)

Author SHA1 Message Date
Phil Hazelden b613ebaac2 Support promoted type applications.
Closes #370.

Up to GHC 8.10,

    foo @ 'Bar

was a valid type application. In GHC 9 it's not, which means brittany
needs to allow

    foo @'Bar

which it now does.

The reason the space was needed was to allow a promoted type variable at
the head of a type-level list. That is,

    '['Foo]

is invalid syntax, because it initially parses as the character `'['`.
So the promoted type variable was always given a separator at the
beginning, and we'd get

    '[ 'Foo]

which was valid. Now we handle this case by specifically examining the
head of a type-level list; if it's promoted we introduce spaces, so

    '[ 'Foo ]
    '[Foo]

I've added tests for this and some related cases. In doing so I noticed
that unnecessary spaces get added in front of commas in these lists; I
believe that's a separate bug, and I've written a comment explaining why
it happens, but I haven't tried to fix it.

I'm not sure when the first alternates in the `FirstLastSingleton`
and `FirstLast` branches would ever be hit, so I'm not entirely sure if
the separators are necessary there. But since `docSeparator` disappears
at the end of a line and merges with adjacent separators, they should be
harmless.
2022-11-01 13:20:38 +00:00
Taylor Fausak 93a43bf28d Revert "Remove `Language.Haskell.` from module names"
This reverts commit 2fe1432631.
2022-01-13 14:16:14 +00:00
Taylor Fausak 2fe1432631 Remove `Language.Haskell.` from module names 2021-11-29 12:25:00 +00:00
Taylor Fausak 7fa2a85b30 Format Brittany with Brittany
Fixes #238.
2021-11-29 02:31:50 +00:00
Taylor Fausak 21e86adf6e Split tests into individual files 2021-11-23 22:41:01 +00:00
Taylor Fausak 89a9f47b72 Ignore warnings when parsing modules 2021-11-21 23:40:15 +00:00
Taylor Fausak ab59e9acc3 Parse modules "purely", without ghc-paths 2021-11-21 22:58:07 +00:00
Taylor Fausak 8fadac8b2e Format imports 2021-11-21 13:44:06 +00:00
Taylor Fausak 8d7b46b9e9 Fix handling of comments 2021-11-07 13:01:54 +00:00
Taylor Fausak 4079981b1d Revert "Format Brittany with Brittany"
This reverts commit 4398b5880d.
2021-11-07 12:37:49 +00:00
Taylor Fausak 4398b5880d Format Brittany with Brittany 2021-11-06 22:29:34 +00:00
Taylor Fausak 2ab406471b Move library 2021-11-06 21:07:34 +00:00