lspitzner / lspitzner/brittany
ParallelListComp leads to syntactically invalid result
Nobody has claimed this yet.
- Dominant language
- Haskell
- Stars
- 686
- Forks
- 69
- PR merge metrics
- No merged PRs in 30d
Description
This Haskell file compiles just fine with ghc 8.10.
{-# LANGUAGE ParallelListComp #-}
main = undefined
b = undefined
c = undefined
d = undefined
e = undefined
a = [ b
| c
| d <- e
]
But running brittany 0.13.1.1 on it causes it to print an error: ERROR: brittany pretty printer returned syntactically invalid result.
Running with --output-on-errors produces this output
{-# LANGUAGE ParallelListComp #-}
main = undefined
b = undefined
c = undefined
d = undefined
e = undefined
a = [ b | c d <- e ]
brittany.yaml
conf_debug:
dconf_roundtrip_exactprint_only: false
dconf_dump_bridoc_simpl_par: false
dconf_dump_ast_unknown: false
dconf_dump_bridoc_simpl_floating: false
dconf_dump_config: false
dconf_dump_bridoc_raw: false
dconf_dump_bridoc_final: false
dconf_dump_bridoc_simpl_alt: false
dconf_dump_bridoc_simpl_indent: false
dconf_dump_annotations: false
dconf_dump_bridoc_simpl_columns: false
dconf_dump_ast_full: false
conf_forward:
options_ghc:
- -XBangPatterns
- -XBlockArguments
- -XExplicitForAll
- -XExplicitNamespaces
- -XGADTs
- -XImplicitParams
- -XLambdaCase
- -XMultiWayIf
- -XNumericUnderscores
- -XParallelListComp
- -XPatternGuards
- -XQuasiQuotes
- -XRecursiveDo
- -XTemplateHaskell
- -XTupleSections
- -XTypeApplications
- -XViewPatterns
conf_errorHandling:
econf_ExactPrintFallback: ExactPrintFallbackModeInline
econf_Werror: false
econf_omit_output_valid_check: false
econf_produceOutputOnErrors: false
conf_preprocessor:
ppconf_CPPMode: CPPModeAbort
ppconf_hackAroundIncludes: false
conf_version: 1
conf_layout:
lconfig_altChooser:
tag: AltChooserBoundedSearch
contents: 3
lconfig_importColumn: 50
lconfig_alignmentLimit: 30
lconfig_indentListSpecial: true
lconfig_indentAmount: 2
lconfig_alignmentBreakOnMultiline: true
lconfig_cols: 80
lconfig_indentPolicy: IndentPolicyFree
lconfig_indentWhereSpecial: true
lconfig_columnAlignMode:
tag: ColumnAlignModeMajority
contents: 0.7
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by running brittany 0.13.1.1 on the supplied Haskell example with ParallelListComp enabled, then compile both the input and formatted output with GHC. Trace the formatter path for parallel list comprehensions; done means the formatted result remains syntactically valid and preserves the parallel comprehension structure.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- haskell
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 48/100