diff --git a/compiler/GHC/Parser/PostProcess.hs b/compiler/GHC/Parser/PostProcess.hs index 8939da0b707f7875fc18a517450428c0558c6eca..28460aa798a26375c9904bddd9332463ad4deabd 100644 --- a/compiler/GHC/Parser/PostProcess.hs +++ b/compiler/GHC/Parser/PostProcess.hs @@ -1135,8 +1135,8 @@ checkCmdBlockArguments :: LHsCmd GhcPs -> PV () -- (((Eq a))) --> [Eq a] -- @ checkContext :: LHsType GhcPs -> P (LHsContext GhcPs) -checkContext orig_t@(L (EpAnn l _ _) _orig_t) = - check ([],[],emptyComments) orig_t +checkContext orig_t@(L (EpAnn l _ cs) _orig_t) = + check ([],[],cs) orig_t where check :: ([EpaLocation],[EpaLocation],EpAnnComments) -> LHsType GhcPs -> P (LHsContext GhcPs) diff --git a/testsuite/tests/printer/Makefile b/testsuite/tests/printer/Makefile index e52d57162936f3dd652fade936ecf779a0414c06..15b4500872ecf5ed1fe0cb810da0a45425797885 100644 --- a/testsuite/tests/printer/Makefile +++ b/testsuite/tests/printer/Makefile @@ -816,3 +816,8 @@ Test23885: AnnotationNoListTuplePuns: $(CHECK_PPR) $(LIBDIR) AnnotationNoListTuplePuns.hs $(CHECK_EXACT) $(LIBDIR) AnnotationNoListTuplePuns.hs + +.PHONY: Test24533 +Test24533: + $(CHECK_PPR) $(LIBDIR) Test24533.hs + $(CHECK_EXACT) $(LIBDIR) Test24533.hs diff --git a/testsuite/tests/printer/Test24533.hs b/testsuite/tests/printer/Test24533.hs new file mode 100644 index 0000000000000000000000000000000000000000..4f08ade0973fa905baa5e6441ad52a89f579ea37 --- /dev/null +++ b/testsuite/tests/printer/Test24533.hs @@ -0,0 +1,8 @@ +{-# OPTIONS -ddump-parsed-ast #-} +module Test24533 where + +instance + ( Read a, -- Weird + Read b + ) => + Read (a, b) diff --git a/testsuite/tests/printer/Test24533.stdout b/testsuite/tests/printer/Test24533.stdout new file mode 100644 index 0000000000000000000000000000000000000000..55b22e09e20a2699ecf96c65fc90bf7d830168e6 --- /dev/null +++ b/testsuite/tests/printer/Test24533.stdout @@ -0,0 +1,548 @@ + +==================== Parser AST ==================== + +(L + { Test24533.hs:1:1 } + (HsModule + (XModulePs + (EpAnn + (EpaSpan { Test24533.hs:1:1 }) + (AnnsModule + [(AddEpAnn AnnModule (EpaSpan { Test24533.hs:2:1-6 })) + ,(AddEpAnn AnnWhere (EpaSpan { Test24533.hs:2:18-22 }))] + [] + (Just + ((,) + { Test24533.hs:9:1 } + { Test24533.hs:8:13 }))) + (EpaCommentsBalanced + [(L + (EpaSpan + { Test24533.hs:1:1-33 }) + (EpaComment + (EpaBlockComment + "{-# OPTIONS -ddump-parsed-ast #-}") + { Test24533.hs:1:1 }))] + [])) + (EpVirtualBraces + (1)) + (Nothing) + (Nothing)) + (Just + (L + (EpAnn + (EpaSpan { Test24533.hs:2:8-16 }) + (AnnListItem + []) + (EpaComments + [])) + {ModuleName: Test24533})) + (Nothing) + [] + [(L + (EpAnn + (EpaSpan { Test24533.hs:(4,1)-(8,13) }) + (AnnListItem + []) + (EpaComments + [])) + (InstD + (NoExtField) + (ClsInstD + (NoExtField) + (ClsInstDecl + ((,,) + (Nothing) + [(AddEpAnn AnnInstance (EpaSpan { Test24533.hs:4:1-8 }))] + (NoAnnSortKey)) + (L + (EpAnn + (EpaSpan { Test24533.hs:(5,3)-(8,13) }) + (AnnListItem + []) + (EpaComments + [])) + (HsSig + (NoExtField) + (HsOuterImplicit + (NoExtField)) + (L + (EpAnn + (EpaSpan { Test24533.hs:(5,3)-(8,13) }) + (AnnListItem + []) + (EpaComments + [])) + (HsQualTy + (NoExtField) + (L + (EpAnn + (EpaSpan { Test24533.hs:(5,3)-(7,3) }) + (AnnContext + (Just + ((,) + (NormalSyntax) + (EpaSpan { Test24533.hs:7:5-6 }))) + [(EpaSpan { Test24533.hs:5:3 })] + [(EpaSpan { Test24533.hs:7:3 })]) + (EpaComments + [(L + (EpaSpan + { Test24533.hs:5:13-20 }) + (EpaComment + (EpaLineComment + "-- Weird") + { Test24533.hs:5:11 }))])) + [(L + (EpAnn + (EpaSpan { Test24533.hs:5:5-10 }) + (AnnListItem + [(AddCommaAnn + (EpaSpan { Test24533.hs:5:11 }))]) + (EpaComments + [])) + (HsAppTy + (NoExtField) + (L + (EpAnn + (EpaSpan { Test24533.hs:5:5-8 }) + (AnnListItem + []) + (EpaComments + [])) + (HsTyVar + [] + (NotPromoted) + (L + (EpAnn + (EpaSpan { Test24533.hs:5:5-8 }) + (NameAnnTrailing + []) + (EpaComments + [])) + (Unqual + {OccName: Read})))) + (L + (EpAnn + (EpaSpan { Test24533.hs:5:10 }) + (AnnListItem + []) + (EpaComments + [])) + (HsTyVar + [] + (NotPromoted) + (L + (EpAnn + (EpaSpan { Test24533.hs:5:10 }) + (NameAnnTrailing + []) + (EpaComments + [])) + (Unqual + {OccName: a})))))) + ,(L + (EpAnn + (EpaSpan { Test24533.hs:6:5-10 }) + (AnnListItem + []) + (EpaComments + [])) + (HsAppTy + (NoExtField) + (L + (EpAnn + (EpaSpan { Test24533.hs:6:5-8 }) + (AnnListItem + []) + (EpaComments + [])) + (HsTyVar + [] + (NotPromoted) + (L + (EpAnn + (EpaSpan { Test24533.hs:6:5-8 }) + (NameAnnTrailing + []) + (EpaComments + [])) + (Unqual + {OccName: Read})))) + (L + (EpAnn + (EpaSpan { Test24533.hs:6:10 }) + (AnnListItem + []) + (EpaComments + [])) + (HsTyVar + [] + (NotPromoted) + (L + (EpAnn + (EpaSpan { Test24533.hs:6:10 }) + (NameAnnTrailing + []) + (EpaComments + [])) + (Unqual + {OccName: b}))))))]) + (L + (EpAnn + (EpaSpan { Test24533.hs:8:3-13 }) + (AnnListItem + []) + (EpaComments + [])) + (HsAppTy + (NoExtField) + (L + (EpAnn + (EpaSpan { Test24533.hs:8:3-6 }) + (AnnListItem + []) + (EpaComments + [])) + (HsTyVar + [] + (NotPromoted) + (L + (EpAnn + (EpaSpan { Test24533.hs:8:3-6 }) + (NameAnnTrailing + []) + (EpaComments + [])) + (Unqual + {OccName: Read})))) + (L + (EpAnn + (EpaSpan { Test24533.hs:8:8-13 }) + (AnnListItem + []) + (EpaComments + [])) + (HsTupleTy + (AnnParen + AnnParens + (EpaSpan { Test24533.hs:8:8 }) + (EpaSpan { Test24533.hs:8:13 })) + (HsBoxedOrConstraintTuple) + [(L + (EpAnn + (EpaSpan { Test24533.hs:8:9 }) + (AnnListItem + [(AddCommaAnn + (EpaSpan { Test24533.hs:8:10 }))]) + (EpaComments + [])) + (HsTyVar + [] + (NotPromoted) + (L + (EpAnn + (EpaSpan { Test24533.hs:8:9 }) + (NameAnnTrailing + []) + (EpaComments + [])) + (Unqual + {OccName: a})))) + ,(L + (EpAnn + (EpaSpan { Test24533.hs:8:12 }) + (AnnListItem + []) + (EpaComments + [])) + (HsTyVar + [] + (NotPromoted) + (L + (EpAnn + (EpaSpan { Test24533.hs:8:12 }) + (NameAnnTrailing + []) + (EpaComments + [])) + (Unqual + {OccName: b}))))])))))))) + {Bag(LocatedA (HsBind GhcPs)): + []} + [] + [] + [] + (Nothing)))))])) + + + +==================== Parser AST ==================== + +(L + { Test24533.ppr.hs:1:1 } + (HsModule + (XModulePs + (EpAnn + (EpaSpan { Test24533.ppr.hs:1:1 }) + (AnnsModule + [(AddEpAnn AnnModule (EpaSpan { Test24533.ppr.hs:2:1-6 })) + ,(AddEpAnn AnnWhere (EpaSpan { Test24533.ppr.hs:2:18-22 }))] + [] + (Just + ((,) + { Test24533.ppr.hs:3:41 } + { Test24533.ppr.hs:3:40 }))) + (EpaCommentsBalanced + [(L + (EpaSpan + { Test24533.ppr.hs:1:1-33 }) + (EpaComment + (EpaBlockComment + "{-# OPTIONS -ddump-parsed-ast #-}") + { Test24533.ppr.hs:1:1 }))] + [])) + (EpVirtualBraces + (1)) + (Nothing) + (Nothing)) + (Just + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:2:8-16 }) + (AnnListItem + []) + (EpaComments + [])) + {ModuleName: Test24533})) + (Nothing) + [] + [(L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:1-40 }) + (AnnListItem + []) + (EpaComments + [])) + (InstD + (NoExtField) + (ClsInstD + (NoExtField) + (ClsInstDecl + ((,,) + (Nothing) + [(AddEpAnn AnnInstance (EpaSpan { Test24533.ppr.hs:3:1-8 }))] + (NoAnnSortKey)) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:10-40 }) + (AnnListItem + []) + (EpaComments + [])) + (HsSig + (NoExtField) + (HsOuterImplicit + (NoExtField)) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:10-40 }) + (AnnListItem + []) + (EpaComments + [])) + (HsQualTy + (NoExtField) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:10-25 }) + (AnnContext + (Just + ((,) + (NormalSyntax) + (EpaSpan { Test24533.ppr.hs:3:27-28 }))) + [(EpaSpan { Test24533.ppr.hs:3:10 })] + [(EpaSpan { Test24533.ppr.hs:3:25 })]) + (EpaComments + [])) + [(L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:11-16 }) + (AnnListItem + [(AddCommaAnn + (EpaSpan { Test24533.ppr.hs:3:17 }))]) + (EpaComments + [])) + (HsAppTy + (NoExtField) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:11-14 }) + (AnnListItem + []) + (EpaComments + [])) + (HsTyVar + [] + (NotPromoted) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:11-14 }) + (NameAnnTrailing + []) + (EpaComments + [])) + (Unqual + {OccName: Read})))) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:16 }) + (AnnListItem + []) + (EpaComments + [])) + (HsTyVar + [] + (NotPromoted) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:16 }) + (NameAnnTrailing + []) + (EpaComments + [])) + (Unqual + {OccName: a})))))) + ,(L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:19-24 }) + (AnnListItem + []) + (EpaComments + [])) + (HsAppTy + (NoExtField) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:19-22 }) + (AnnListItem + []) + (EpaComments + [])) + (HsTyVar + [] + (NotPromoted) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:19-22 }) + (NameAnnTrailing + []) + (EpaComments + [])) + (Unqual + {OccName: Read})))) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:24 }) + (AnnListItem + []) + (EpaComments + [])) + (HsTyVar + [] + (NotPromoted) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:24 }) + (NameAnnTrailing + []) + (EpaComments + [])) + (Unqual + {OccName: b}))))))]) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:30-40 }) + (AnnListItem + []) + (EpaComments + [])) + (HsAppTy + (NoExtField) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:30-33 }) + (AnnListItem + []) + (EpaComments + [])) + (HsTyVar + [] + (NotPromoted) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:30-33 }) + (NameAnnTrailing + []) + (EpaComments + [])) + (Unqual + {OccName: Read})))) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:35-40 }) + (AnnListItem + []) + (EpaComments + [])) + (HsTupleTy + (AnnParen + AnnParens + (EpaSpan { Test24533.ppr.hs:3:35 }) + (EpaSpan { Test24533.ppr.hs:3:40 })) + (HsBoxedOrConstraintTuple) + [(L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:36 }) + (AnnListItem + [(AddCommaAnn + (EpaSpan { Test24533.ppr.hs:3:37 }))]) + (EpaComments + [])) + (HsTyVar + [] + (NotPromoted) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:36 }) + (NameAnnTrailing + []) + (EpaComments + [])) + (Unqual + {OccName: a})))) + ,(L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:39 }) + (AnnListItem + []) + (EpaComments + [])) + (HsTyVar + [] + (NotPromoted) + (L + (EpAnn + (EpaSpan { Test24533.ppr.hs:3:39 }) + (NameAnnTrailing + []) + (EpaComments + [])) + (Unqual + {OccName: b}))))])))))))) + {Bag(LocatedA (HsBind GhcPs)): + []} + [] + [] + [] + (Nothing)))))])) \ No newline at end of file diff --git a/testsuite/tests/printer/all.T b/testsuite/tests/printer/all.T index 5f0a10b5f889ea69796ecfae5d3146efd0161832..7217ec8bd9f1fba71ef8b0dadc3d644ba95e0fdc 100644 --- a/testsuite/tests/printer/all.T +++ b/testsuite/tests/printer/all.T @@ -196,3 +196,4 @@ test('Test23887', [ignore_stderr, req_ppr_deps], makefile_test, ['Test23887']) test('Test23885', [ignore_stderr, req_ppr_deps], makefile_test, ['Test23885']) test('ListTuplePuns', extra_files(['ListTuplePuns.hs']), ghci_script, ['ListTuplePuns.script']) test('AnnotationNoListTuplePuns', [ignore_stderr, req_ppr_deps], makefile_test, ['AnnotationNoListTuplePuns']) +test('Test24533', [ignore_stderr, req_ppr_deps], makefile_test, ['Test24533'])