From bf3d4db0894233ec72f092a4a34bce9ed4ff4e21 Mon Sep 17 00:00:00 2001
From: Alan Zimmerman <alan.zimm@gmail.com>
Date: Wed, 1 May 2024 21:58:46 +0100
Subject: [PATCH] EPA: Preserve comments for pattern synonym sig

Closes #24749
---
 compiler/GHC/Parser.y                |  2 +-
 testsuite/tests/printer/Makefile     |  5 +++++
 testsuite/tests/printer/Test24749.hs | 11 +++++++++++
 testsuite/tests/printer/all.T        |  1 +
 4 files changed, 18 insertions(+), 1 deletion(-)
 create mode 100644 testsuite/tests/printer/Test24749.hs

diff --git a/compiler/GHC/Parser.y b/compiler/GHC/Parser.y
index 7ec7637d1f7e..050c696a0a47 100644
--- a/compiler/GHC/Parser.y
+++ b/compiler/GHC/Parser.y
@@ -2653,7 +2653,7 @@ sigdecl :: { LHsDecl GhcPs }
                                     (Fixity fixText fixPrec (unLoc $1)))))
                    }}
 
-        | pattern_synonym_sig   { sL1a $1 . SigD noExtField . unLoc $ $1 }
+        | pattern_synonym_sig   { L (getLoc $1) . SigD noExtField . unLoc $ $1 }
 
         | '{-# COMPLETE' qcon_list opt_tyconsig  '#-}'
                 {% let (dcolon, tc) = $3
diff --git a/testsuite/tests/printer/Makefile b/testsuite/tests/printer/Makefile
index 9d8c735308c3..8b9e56cbe6d6 100644
--- a/testsuite/tests/printer/Makefile
+++ b/testsuite/tests/printer/Makefile
@@ -846,3 +846,8 @@ Test24748:
 DataDeclShort:
 	$(CHECK_PPR)   $(LIBDIR) DataDeclShort.hs
 	$(CHECK_EXACT) $(LIBDIR) DataDeclShort.hs
+
+.PHONY: Test24749
+Test24749:
+	$(CHECK_PPR)   $(LIBDIR) Test24749.hs
+	$(CHECK_EXACT) $(LIBDIR) Test24749.hs
diff --git a/testsuite/tests/printer/Test24749.hs b/testsuite/tests/printer/Test24749.hs
new file mode 100644
index 000000000000..729da647dcf0
--- /dev/null
+++ b/testsuite/tests/printer/Test24749.hs
@@ -0,0 +1,11 @@
+{-# LANGUAGE PatternSynonyms #-}
+module Test24749 where
+
+-- c0
+pattern (:|) ::
+  -- c1
+  a ->
+  -- c2
+  a ->
+  -- c3
+  Domino a
diff --git a/testsuite/tests/printer/all.T b/testsuite/tests/printer/all.T
index da192356745b..ce076aaa8744 100644
--- a/testsuite/tests/printer/all.T
+++ b/testsuite/tests/printer/all.T
@@ -202,3 +202,4 @@ test('CaseAltComments', [ignore_stderr, req_ppr_deps], makefile_test, ['CaseAltC
 test('MatchPatComments', [ignore_stderr, req_ppr_deps], makefile_test, ['MatchPatComments'])
 test('Test24748', [ignore_stderr, req_ppr_deps], makefile_test, ['Test24748'])
 test('DataDeclShort', [ignore_stderr, req_ppr_deps], makefile_test, ['DataDeclShort'])
+test('Test24749', [ignore_stderr, req_ppr_deps], makefile_test, ['Test24749'])
-- 
GitLab