From aba2d97e5559c120fc2e6e52a795eee1cdeaf388 Mon Sep 17 00:00:00 2001 From: Jan Vincent Liwanag Date: Wed, 18 Nov 2020 20:52:45 +0800 Subject: [PATCH 1/2] Fix TypeOp flexGroup * Change from printing: ``` type Foo = (Foo A <+> Foo B) ``` to ``` type Foo = (Foo A <+> Foo B) ``` --- src/Language/PS/CST/Printers/TypeLevel.purs | 1 + test/Golden/DeclType/Actual.purs | 12 ++++++++++++ test/Golden/DeclType/Expected.txt | 2 ++ 3 files changed, 15 insertions(+) diff --git a/src/Language/PS/CST/Printers/TypeLevel.purs b/src/Language/PS/CST/Printers/TypeLevel.purs index 21b5616..bf2aa77 100644 --- a/src/Language/PS/CST/Printers/TypeLevel.purs +++ b/src/Language/PS/CST/Printers/TypeLevel.purs @@ -90,6 +90,7 @@ printType = \type_ -> case type_ of (TypeForall _ _) -> flexGroup $ printTypeImplementation type_ (TypeConstrained _ _) -> flexGroup $ printTypeImplementation type_ (TypeArr _ _) -> flexGroup $ printTypeImplementation type_ + (TypeOp _ _ _) -> flexGroup $ printTypeImplementation type_ _ -> printTypeImplementation type_ where printTypeImplementation (TypeVar ident) = (text <<< appendUnderscoreIfReserved <<< unwrap) ident diff --git a/test/Golden/DeclType/Actual.purs b/test/Golden/DeclType/Actual.purs index f01c745..43d6a56 100644 --- a/test/Golden/DeclType/Actual.purs +++ b/test/Golden/DeclType/Actual.purs @@ -140,6 +140,18 @@ actualModule = Module (arrayType $ TypeVar $ Ident "a") , declFooType $ (arrayType $ TypeVar $ Ident "a") ====>> (maybeType $ TypeVar $ Ident "a") , declFooType $ TypeOp (TypeConstructor $ nonQualifiedName $ ProperName "Array") (nonQualifiedName $ OpName "~>") (TypeConstructor $ nonQualifiedName $ ProperName "Maybe") + , declFooType $ + (TypeOp + ((TypeConstructor $ nonQualifiedName (ProperName "Foo")) + `TypeApp` + (TypeConstructor $ nonQualifiedName (ProperName "A")) + ) + (nonQualifiedName (OpName "<+>")) + ((TypeConstructor $ nonQualifiedName (ProperName "Foo")) + `TypeApp` + (TypeConstructor $ nonQualifiedName (ProperName "B")) + ) + ) , declFooType $ TypeForall (NonEmpty.cons' (TypeVarName $ Ident "f") []) ( TypeConstrained diff --git a/test/Golden/DeclType/Expected.txt b/test/Golden/DeclType/Expected.txt index 5bbe1cc..afcdb04 100644 --- a/test/Golden/DeclType/Expected.txt +++ b/test/Golden/DeclType/Expected.txt @@ -87,6 +87,8 @@ type Foo = (Array a -> Maybe a) type Foo = (Array ~> Maybe) +type Foo = (Foo A <+> Foo B) + type Foo = (forall f . Functor f => f ~> Maybe) type Foo = (MyClass f g k => MyClass2 { foo :: Number } => f) From 82e0be4b34fb7aa7439dcb1a8da67da89ade7663 Mon Sep 17 00:00:00 2001 From: Jan Vincent Liwanag Date: Wed, 18 Nov 2020 20:56:33 +0800 Subject: [PATCH 2/2] Update type, newtype, complex expected output from typeOp flexGroup --- test/Golden/DeclDataComplex/Expected.txt | 3 +-- test/Golden/DeclNewtype/Expected.txt | 3 +-- test/Golden/DeclType/Expected.txt | 3 +-- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/test/Golden/DeclDataComplex/Expected.txt b/test/Golden/DeclDataComplex/Expected.txt index 6797396..275020b 100644 --- a/test/Golden/DeclDataComplex/Expected.txt +++ b/test/Golden/DeclDataComplex/Expected.txt @@ -44,8 +44,7 @@ data Foo ( rowField :: Number, rowField2 :: Number | MyExtension + MyOtherExtension ) ( rowField :: Number , rowField2 :: Number - | MyExtension + MyOtherExtension - { someField :: Number } + | MyExtension + MyOtherExtension { someField :: Number } ) ( rowField :: { foo :: Number , bar :: Data.Map.Map diff --git a/test/Golden/DeclNewtype/Expected.txt b/test/Golden/DeclNewtype/Expected.txt index ccb3f7b..1ed98e0 100644 --- a/test/Golden/DeclNewtype/Expected.txt +++ b/test/Golden/DeclNewtype/Expected.txt @@ -60,8 +60,7 @@ newtype Foo = Foo ( rowField :: Number newtype Foo = Foo ( rowField :: Number , rowField2 :: Number - | MyExtension + MyOtherExtension - { someField :: Number } + | MyExtension + MyOtherExtension { someField :: Number } ) newtype Foo = Foo ( rowField :: { foo :: Number diff --git a/test/Golden/DeclType/Expected.txt b/test/Golden/DeclType/Expected.txt index afcdb04..5457c68 100644 --- a/test/Golden/DeclType/Expected.txt +++ b/test/Golden/DeclType/Expected.txt @@ -60,8 +60,7 @@ type Foo = ( rowField :: Number type Foo = ( rowField :: Number , rowField2 :: Number - | MyExtension + MyOtherExtension - { someField :: Number } + | MyExtension + MyOtherExtension { someField :: Number } ) type Foo = ( "RowField" :: Number )