From 7bd58e3069984608e9b39edd1da3370b1f1f8e01 Mon Sep 17 00:00:00 2001 From: Bretton Date: Wed, 15 Jun 2022 14:30:02 -0700 Subject: [PATCH 1/3] Allow infix operators in import lists --- src/Cryptol/Parser.y | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Cryptol/Parser.y b/src/Cryptol/Parser.y index 47c00d6e0..50358e796 100644 --- a/src/Cryptol/Parser.y +++ b/src/Cryptol/Parser.y @@ -216,8 +216,8 @@ mbImportSpec :: { Maybe (Located ImportSpec) } | {- empty -} { Nothing } name_list :: { [LIdent] } - : name_list ',' ident { $3 : $1 } - | ident { [$1] } + : name_list ',' var { fmap getIdent $3 : $1 } + | var { [fmap getIdent $1] } | {- empty -} { [] } mbHiding :: { [Ident] -> ImportSpec } From fe3eecfc63eb648f6186c885437e75023f95b4a6 Mon Sep 17 00:00:00 2001 From: Bretton Date: Wed, 15 Jun 2022 15:33:47 -0700 Subject: [PATCH 2/3] Formatting --- src/Cryptol/Parser.y | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Cryptol/Parser.y b/src/Cryptol/Parser.y index 50358e796..00a184547 100644 --- a/src/Cryptol/Parser.y +++ b/src/Cryptol/Parser.y @@ -218,7 +218,7 @@ mbImportSpec :: { Maybe (Located ImportSpec) } name_list :: { [LIdent] } : name_list ',' var { fmap getIdent $3 : $1 } | var { [fmap getIdent $1] } - | {- empty -} { [] } + | {- empty -} { [] } mbHiding :: { [Ident] -> ImportSpec } : 'hiding' { Hiding } From b15b695ca4bb2482792f7863b6260cb03b3c5401 Mon Sep 17 00:00:00 2001 From: Bretton Date: Wed, 15 Jun 2022 16:37:53 -0700 Subject: [PATCH 3/3] Add tests --- tests/issues/issue1344.icry | 1 + tests/issues/issue1344.icry.stdout | 4 ++++ tests/issues/issue1344/A.cry | 5 +++++ tests/issues/issue1344/issue1344.cry | 5 +++++ 4 files changed, 15 insertions(+) create mode 100644 tests/issues/issue1344.icry create mode 100644 tests/issues/issue1344.icry.stdout create mode 100644 tests/issues/issue1344/A.cry create mode 100644 tests/issues/issue1344/issue1344.cry diff --git a/tests/issues/issue1344.icry b/tests/issues/issue1344.icry new file mode 100644 index 000000000..c75b3f1a9 --- /dev/null +++ b/tests/issues/issue1344.icry @@ -0,0 +1 @@ +:l issue1344/issue1344.cry diff --git a/tests/issues/issue1344.icry.stdout b/tests/issues/issue1344.icry.stdout new file mode 100644 index 000000000..795267186 --- /dev/null +++ b/tests/issues/issue1344.icry.stdout @@ -0,0 +1,4 @@ +Loading module Cryptol +Loading module Cryptol +Loading module A +Loading module Main diff --git a/tests/issues/issue1344/A.cry b/tests/issues/issue1344/A.cry new file mode 100644 index 000000000..6e4075426 --- /dev/null +++ b/tests/issues/issue1344/A.cry @@ -0,0 +1,5 @@ +module A where + +x <+> y = x + y + +type a ∸ b = max a b - b diff --git a/tests/issues/issue1344/issue1344.cry b/tests/issues/issue1344/issue1344.cry new file mode 100644 index 000000000..437fe14d6 --- /dev/null +++ b/tests/issues/issue1344/issue1344.cry @@ -0,0 +1,5 @@ +import A ((<+>), (∸)) + +plus = (<+>) + +type monus a b = a ∸ b