From 6de8ac892a8001d1a0f00c7b44a731f1f9f5c0b1 Mon Sep 17 00:00:00 2001 From: Alan Zimmerman Date: Wed, 26 May 2021 22:20:07 +0100 Subject: [EPA] exact print linear arrows. Closes #19903 Note: the normal ppr does not reproduce unicode linear arrows, so that part of the normal printing test is ommented out in the Makefile for this test. See #18846 --- testsuite/tests/printer/Makefile | 6 ++++++ testsuite/tests/printer/PprLinearArrow.hs | 26 ++++++++++++++++++++++++++ testsuite/tests/printer/all.T | 6 ++++++ 3 files changed, 38 insertions(+) create mode 100644 testsuite/tests/printer/PprLinearArrow.hs (limited to 'testsuite/tests/printer') diff --git a/testsuite/tests/printer/Makefile b/testsuite/tests/printer/Makefile index 1d0fc14f87..e8bbe7c079 100644 --- a/testsuite/tests/printer/Makefile +++ b/testsuite/tests/printer/Makefile @@ -558,6 +558,12 @@ InTreeAnnotations1: $(CHECK_PPR) $(LIBDIR) InTreeAnnotations1.hs $(CHECK_EXACT) $(LIBDIR) InTreeAnnotations1.hs +.PHONY: PprLinearArrow +PprLinearArrow: + # $(CHECK_PPR) $(LIBDIR) PprLinearArrow.hs + $(CHECK_EXACT) $(LIBDIR) PprLinearArrow.hs + + .PHONY: Test19784 Test19784: $(CHECK_PPR) $(LIBDIR) Test19784.hs diff --git a/testsuite/tests/printer/PprLinearArrow.hs b/testsuite/tests/printer/PprLinearArrow.hs new file mode 100644 index 0000000000..1bf995ce6d --- /dev/null +++ b/testsuite/tests/printer/PprLinearArrow.hs @@ -0,0 +1,26 @@ +{-# LANGUAGE LinearTypes, DataKinds, UnicodeSyntax #-} + +module PprLinearArrow where + +import GHC.Types (Multiplicity(One, Many)) + +n1 :: a %1 -> b +n1 = undefined + +u1 :: a %1 → b +u1 = undefined + +n2 :: a %(Many) -> b +n2 = undefined + +u2 :: a %(Many) → b +u2 = undefined + +m3 :: a ⊸ b +m3 = undefined + +n4 :: a %p -> b +n4 = undefined + +u4 :: a %p → b +u4 = undefined diff --git a/testsuite/tests/printer/all.T b/testsuite/tests/printer/all.T index 916ed6bbee..e936cdc64e 100644 --- a/testsuite/tests/printer/all.T +++ b/testsuite/tests/printer/all.T @@ -124,12 +124,18 @@ test('PprRecordDotSyntaxA', ignore_stderr, makefile_test, ['PprRecordDotSyntaxA' test('CommentsTest', ignore_stderr, makefile_test, ['CommentsTest']) test('InTreeAnnotations1', ignore_stderr, makefile_test, ['InTreeAnnotations1']) + +# Normal ppr does not reproduce unicode linear arrows, commented out +# in the Makefile for this test. See #18846 +test('PprLinearArrow', ignore_stderr, makefile_test, ['PprLinearArrow']) + test('Test19784', ignore_stderr, makefile_test, ['Test19784']) test('Test19798', ignore_stderr, makefile_test, ['Test19798']) # The exact printing manages the extra semicolons, normal ppr not, so # disabled in the Makefile for this test. test('Test19813', ignore_stderr, makefile_test, ['Test19813']) + test('Test19814', ignore_stderr, makefile_test, ['Test19814']) test('Test19821', ignore_stderr, makefile_test, ['Test19821']) test('Test19834', ignore_stderr, makefile_test, ['Test19834']) -- cgit v1.2.1