diff --git a/brittany.cabal b/brittany.cabal index 84db13f..33d760e 100644 --- a/brittany.cabal +++ b/brittany.cabal @@ -24,7 +24,8 @@ extra-doc-files: README.md doc/implementation/*.md extra-source-files: - data/*.blt + data/brittany.yaml + data/*.hs source-repository head type: git @@ -143,7 +144,6 @@ test-suite brittany-test-suite build-depends: , hspec ^>= 2.8.3 - , parsec ^>= 3.1.14 hs-source-dirs: source/test-suite main-is: Main.hs type: exitcode-stdio-1.0 diff --git a/data/10-tests.blt b/data/10-tests.blt deleted file mode 100644 index debf9aa..0000000 --- a/data/10-tests.blt +++ /dev/null @@ -1,1757 +0,0 @@ - -############################################################################### -############################################################################### -############################################################################### -#group type signatures -############################################################################### -############################################################################### -############################################################################### - -#test simple001 -func :: a -> a - -#test long typeVar -func - :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -#test keep linebreak mode -func - :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lakjsdlkjasldkj - -> lakjsdlkjasldkj - -#test simple parens 1 -func :: ((a)) - -#test simple parens 2 -func :: (a -> a) -> a - -#test simple parens 3 -func :: a -> (a -> a) - -#test did anyone say parentheses? -func :: (((((((((()))))))))) - --- current output is.. funny. wonder if that can/needs to be improved.. -#test give me more! -#pending nested tuples over line length -func :: ((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))) - -#test unit -func :: () - - -############################################################################### - -#test paren'd func 1 -func - :: ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lakjsdlkjasldkj - -> lakjsdlkjasldkj - ) - -#test paren'd func 2 -func - :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> (lakjsdlkjasldkj -> lakjsdlkjasldkj) - -#test paren'd func 3 -func - :: (lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd -> lakjsdlkjasldkj) - -> lakjsdlkjasldkj - -#test paren'd func 4 -func - :: ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - -> lakjsdlkjasldkj - -#test paren'd func 5 -func - :: ( ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - ) - -############################################################################### - -#test type application 1 -func :: asd -> Either a b - -#test type application 2 -func - :: asd - -> Either - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -#test type application 3 -func - :: asd - -> Trither - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -#test type application 4 -func - :: Trither - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> asd - -#test type application 5 -func - :: Trither - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - (lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd -> asd) - -#test type application 6 -func - :: Trither - asd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - -#test type application paren 1 -func - :: asd - -> ( Trither - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - -#test type application paren 2 -func - :: asd - -> ( Trither - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -#test type application paren 3 -func - :: ( Trither - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> asd - -############################################################################### - -#test list simple -func :: [a -> b] - -#test list func -func - :: [ lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ] - -#test list paren -func - :: [ ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - ] - -################################################################## -- ############# - -#test tuple type 1 -func :: (a, b, c) - -#test tuple type 2 -func :: ((a, b, c), (a, b, c), (a, b, c)) - -#test tuple type long -func - :: ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - -#test tuple type nested -func - :: ( ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - , (lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd) - , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - ) - -#test tuple type function -func - :: [ ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - ] -############################################################################### -#test type operator stuff -#pending HsOpTy -test050 :: a :+: b -test051 :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - :+: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd -test052 :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - :+: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -############################################################################### - -#test forall oneliner -{-# LANGUAGE ScopedTypeVariables #-} -func :: forall (a :: *) b . a -> b - -#test forall context multiline -{-# LANGUAGE ScopedTypeVariables #-} -func - :: forall m - . Foo - => ColMap2 - -> ColInfo - -> ColInfo - -> ColInfo - -> ColInfo - -> m () - -#test forall no-context multiline -{-# LANGUAGE ScopedTypeVariables #-} -func - :: forall m - . ColMap2 - -> ColInfo - -> ColInfo - -> ColInfo - -> ColInfo - -> ColInfo - -> m () - -#test forall context multiline with comments -{-# LANGUAGE RankNTypes #-} -addFlagStringParam - :: forall f out - . (Applicative f) - => String -- ^ short flag chars, i.e. "v" for -v - -> [String] -- ^ list of long names, i.e. ["verbose"] - -> String -- ^ param name - -> Flag String -- ^ properties - -> CmdParser f out String - -#test language pragma issue -{-# LANGUAGE ScopedTypeVariables #-} -func :: forall (a :: *) b . a -> b - -#test comments 1 -func :: a -> b -- comment - -#test comments 2 -funcA :: a -> b -- comment A -funcB :: a -> b -- comment B - -#test comments all --- a -func -- b - :: -- c - a -- d - -> -- e - ( -- f - c -- g - , -- h - d -- i - ) -- j --- k - -############################################################################### -############################################################################### -############################################################################### -#group type signatures pragmas -############################################################################### -############################################################################### -############################################################################### - -#test inline pragma 1 -func = f - where - {-# INLINE f #-} - f = id - -#test inline pragma 2 -func = ($) - where - {-# INLINE ($) #-} - ($) = id - -#test inline pragma 3 -func = f - where - {-# INLINE CONLIKE [1] f #-} - f = id - -#test noinline pragma 1 -{-# NOINLINE func #-} -func :: Int - -#test inline pragma 4 -func = f - where - {-# INLINE [~1] f #-} - f = id - - -############################################################################### -############################################################################### -############################################################################### -#group data type declarations -############################################################################### -############################################################################### -############################################################################### - -#test nullary data type -data Foo = Bar {} - -data Biz = Baz - -#test single record -data Foo = Bar - { foo :: Baz - } - -#test record multiple names -data Foo = Bar - { foo, bar :: Baz - } - -#test record multiple types -data Foo = Bar - { foo :: Baz - , bars :: Bizzz - } - -#test record multiple types and names -data Foo = Bar - { foo, biz :: Baz - , bar :: Bizzz - } - -#test record multiple types deriving -data Foo = Bar - { fooz :: Baz - , bar :: Bizzz - } - deriving Show - -#test record long field names -data MyRecord = MyConstructor - { bar1, bar2 - :: Loooooooooooooooooooooooooooooooong - -> Loooooooooooooooooooooooooooooooong - , foo1, foo2 - :: Loooooooooooooooooooooooooooooooonger - -> Loooooooooooooooooooooooooooooooonger - } - -#test record with DataTypeContexts -{-# LANGUAGE DatatypeContexts #-} -data - ( LooooooooooooooooooooongConstraint a - , LooooooooooooooooooooongConstraint b - ) => - MyRecord a b - = MyConstructor - { foo1, foo2 - :: loooooooooooooooooooooooooooooooong - -> loooooooooooooooooooooooooooooooong - , bar :: a - , bazz :: b - } - -#test record single line layout -#pending config flag is disabled for now -{-# LANGUAGE ScopedTypeVariables #-} --- brittany { lconfig_allowSinglelineRecord: true } -data MyRecord = forall a . Show a => MyCons { foo :: a -> a, i :: Int } - -#test record no matching single line layout -{-# LANGUAGE ScopedTypeVariables #-} --- brittany { lconfig_allowSinglelineRecord: true } -data MyRecord = forall a . Show a => Bar - { foo :: abittoolongbutnotvery -> abittoolongbutnotvery - } - -#test record forall constraint multiline -{-# LANGUAGE ScopedTypeVariables #-} -data MyRecord - = forall a - . LooooooooooooooooooooongConstraint a => - LoooooooooooongConstructor - { foo :: abittoolongbutnotvery -> abittoolongbutnotvery - } - -#test record forall constraint multiline more -{-# LANGUAGE ScopedTypeVariables #-} -data MyRecord - = forall a b - . ( Loooooooooooooooooooooooooooooooong a - , Loooooooooooooooooooooooooooooooong b - ) => - MyConstructor - { a :: a - , b :: b - } - -#test plain with forall and constraint -{-# LANGUAGE ScopedTypeVariables #-} -data MyStruct - = forall a b - . ( Loooooooooooooooooooooooooooooooong a - , Loooooooooooooooooooooooooooooooong b - ) => - MyConstructor (ToBriDocM BriDocNumbered) - (ToBriDocM BriDocNumbered) - (ToBriDocM BriDocNumbered) - -#test record with many features -{-# LANGUAGE ScopedTypeVariables #-} -data MyRecord - = forall a b - . ( Loooooooooooooooooooooooooooooooong a - , Loooooooooooooooooooooooooooooooong b - ) => - MyConstructor - { foo, foo2 - :: loooooooooooooooooooooooooooooooong - -> loooooooooooooooooooooooooooooooong - , bar :: a - , bazz :: b - } - deriving Show - -#test record multiple types deriving -data Foo = Bar - { foo :: Baz - , bars :: Bizzz - } - deriving (Show, Eq, Monad, Functor, Traversable, Foldable) - -#test record multiple deriving strategies -data Foo = Bar - { foo :: Baz - , bars :: Bizzz - } - deriving Show - deriving (Eq, Ord) - deriving stock Show - deriving stock (Eq, Ord) - deriving anyclass Show - deriving anyclass (Show, Eq, Monad, Functor) - deriving newtype Show - deriving newtype (Traversable, Foldable) - -#test record deriving via -data Foo = Bar - { foo :: Baz - , bars :: Bizzz - } - deriving ToJSON via (SomeType) - deriving (ToJSON, FromJSON) via (SomeType) - -#test single record existential -{-# LANGUAGE ExistentialQuantification #-} - -data Foo = forall a . Show a => Bar - { foo :: a - } - -#test record multiple types existential -{-# LANGUAGE ExistentialQuantification #-} - -data Foo = forall a b . (Show a, Eq b) => Bar - { foo :: a - , bars :: b - } - -#test plain comment simple --- before -data MyData = MyData Int --- after - -#test record newline comment -data MyRecord = MyRecord - { a :: Int - -- comment - , b :: Int - } - -#test record comments simple -data Foo = Bar -- a - { foo :: Baz -- b - , bars :: Bizzz -- c - } -- d - deriving (Show, Eq, Monad, Functor, Traversable, Foldable) -- e - -#test record comments strange inline -data Foo = Bar - { -- a - foo -- b - :: -- c - Baz -- d - , -- e - bars :: Bizzz - } - deriving (Show, Eq, Monad, Functor, Traversable, Foldable) - -#test record comments in deriving -## maybe we want to switch to a differnt layout when there are such comments. -## Don't hesitate to modify this testcase, it clearly is not the ideal layout -## for this. - -data Foo = Bar - { foo :: Baz - , bars :: Bizzz - } - -- a - deriving --b - ( -- c - ToJSON -- d - , -- e - FromJSON --f - ) -- g - -#test record comments in deriving via -## maybe we want to switch to a differnt layout when there are such comments. -## Don't hesitate to modify this testcase, it clearly is not the ideal layout -## for this. - -data Foo = Bar - { foo :: Baz - , bars :: Bizzz - } - -- a - deriving --a - ToJSON --b - via -- c - ( -- d - SomeType --e - , -- f - ABC --g - ) - -#test comment before equal sign -{-# LANGUAGE ExistentialQuantification #-} -data MyRecord - -- test comment - = forall a b - . ( Loooooooooooooooooooooooooooooooong a - , Loooooooooooooooooooooooooooooooong b - ) => - MyConstructor a b - -#test normal records on multi line indent policy left --- brittany {lconfig_indentPolicy: IndentPolicyLeft } -data EnterpriseGrantsForCompanyResponse = EnterpriseGrantsForCompanyResponse - Types.Company - [EnterpriseGrantResponse] - -#test normal records on multi line indent policy free --- brittany {lconfig_indentPolicy: IndentPolicyFree } -data GrantsForCompanyResp = GrantsForCompanyResp Types.Company - [EnterpriseGrantResponse] - -#test normal records on multi line indent policy free 2 --- brittany {lconfig_indentPolicy: IndentPolicyFree } -data EnterpriseGrantsForCompanyResponse = EnterpriseGrantsForCompanyResponse - Types.Company - [EnterpriseGrantResponse] - -#test normal records on multi line indent policy multiple --- brittany {lconfig_indentPolicy: IndentPolicyMultiple } -data GrantsForCompanyResp = GrantsForCompanyResp Types.Company - [EnterpriseGrantResponse] - -#test large record with a comment -data XIILqcacwiuNiu = XIILqcacwiuNiu - { oyyFtvbepgbOge_pebzVmuftEijwuj :: Jgtoyuh HessJvNlo - , wloQsiskdoxJop_xatiKrwedOxtu :: Jgtoyuh [Inotg] - , mmmJjcqtemyIyo_ovosDoreKeeoyamvove :: Jgtoyuh Eujo - , mbiIatelofxOzr_uluxNngiiMjah :: Jgtoyuh HessJvNlo - , obxIskfcxpkIkb_uuviTuevcSkrgo :: Jgtoyuh Int - , wqrAtuvuecoHwr_ilotNxbuPleo :: Jgtoyuh Ufaxdeq - , lofAfuebdhpLuv_cnekPoyFxmg :: Jgtoyuh Ufaxdeq - , ouoFugtawzvUpk_oupiLzptugy :: Jgtoyuh Eujo - , iqiXjtziwogNsa_uiyvSunaTtgUsf3 :: Jgtoyuh Oaivn - , odbIriaqnojUlz_onotoWuunehIpuy :: Jgtoyuh Eujo - , opjUxtkxzkiKse_luqjuZazt - :: Jgtoyuh [(Eujo, Int, Int, Int, Int, Int, NELUxro)] - -- , jcqRaqznxfhIpa_ywevMezmoYkutuwa :: Jgtoyuh () - , vayOmuasyphOfd_bcsVljmvt :: Jgtoyuh Eujo - , rifArahilooRax_ufikecqdImsv :: Jgtoyuh Oaivn - , raqKtopcpszDwb_oqocubasZuqjcryoDojGkw :: Jgtoyuh Oaivn - , mluJiilpcijUtt_gaisklifVekfeyagRmfbyzz :: Jgtoyuh Oaivn - , oqhPaahjupaSmi_gamwwoovKyxznecvEayluc :: Jgtoyuh Oaivn - , mazFubimwebZpa_itidehDodiDlboz :: Jgtoyuh Vrep - , jeyOcuesexaYoy_vpqn :: Jgtoyuh () - } - -############################################################################### -############################################################################### -############################################################################### -#group equation.basic -############################################################################### -############################################################################### -############################################################################### -## some basic testing of different kinds of equations. -## some focus on column layouting for multiple-equation definitions. -## (that part probably is not implemented in any way yet.) - -#test basic 1 -func x = x - -#test infix 1 -x *** y = x - -#test symbol prefix -(***) x y = x - -#test infix more args simple -(f >=> g) k = f k >>= g - -#test infix more args alignment -(Left a <$$> Left dd) e f = True -(Left a <$$> Right d ) e f = True -(Right a <$$> Left d ) e f = False -(Right a <$$> Right dd) e f = True - - -############################################################################### -############################################################################### -############################################################################### -#group equation.patterns -############################################################################### -############################################################################### -############################################################################### - -#test wildcard -func _ = x - -#test simple long pattern -func reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable = - x - -#test simple multiline pattern -func reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable - = x - -#test another multiline pattern -func reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable a b - = x - -#test simple constructor -func (A a) = a - -#test list constructor -func (x : xr) = x - -#test some other constructor symbol -func (x :+: xr) = x - -#test normal infix constructor -func (x `Foo` xr) = x - - -############################################################################### -############################################################################### -############################################################################### -#group equation.guards -############################################################################### -############################################################################### -############################################################################### -#test simple guard -func | True = x - -#test multiple-clauses-1 -func x | x = simple expression - | otherwise = 0 - -#test multiple-clauses-2 -func x - | a somewhat longer guard x = "and a somewhat longer expession that does not" - | otherwise = "fit without putting the guards in new lines" - -#test multiple-clauses-3 -func x - | very long guard, another rather long guard that refers to x = nontrivial - expression - foo - bar - alsdkjlasdjlasj - | otherwise = 0 - -#test multiple-clauses-4 -func x - | very long guard, another rather long guard that refers to x - = nontrivialexpression foo bar alsdkjlasdjlasj - | otherwise - = 0 - -#test multiple-clauses-5 -func x - | very loooooooooooooooooooooooooooooong guard - , another rather long guard that refers to x - = nontrivial expression foo bar alsdkjlasdjlasj - | otherwise - = 0 - - -############################################################################### -############################################################################### -############################################################################### -#group expression.basic -############################################################################### -############################################################################### -############################################################################### - -#test var -func = x - -describe "infix op" $ do -#test 1 -func = x + x - -#test long -func = - mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj - + mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj - -#test long keep linemode 1 -func = - mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj - + mweroiuxlskdfjlksj - + mweroiuxlskdfjlksj - -#test long keep linemode 2 -func = - mweroiuxlskdfjlksj - + mweroiuxlskdfjlksj - + mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj - -#test literals -func = 1 -func = "abc" -func = 1.1e5 -func = 'x' -func = 981409823458910394810928414192837123987123987123 - -#test lambda -func = \x -> abc - -describe "app" $ do -#test 1 -func = klajsdas klajsdas klajsdas - -#test 2 -func = lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - -#test 3 -func = lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd lakjsdlajsdljas - lakjsdlajsdljas - lakjsdlajsdljas - -### -#group expression.basic.sections -### - -#test left -func = (1 +) - -#test right -func = (+ 1) - -#test left inf -func = (1 `abc`) - -#test right inf -func = (`abc` 1) - -### -#group tuples -### - -#test pair -func = (abc, def) - -#test pair section left -func = (abc, ) - -#test pair section right -func = (, abc) - -#test quintuple section long -myTupleSection = - ( verylaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaargefirstelement - , - , verylaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaargethirdelement - , - ) - -#test 2 -func = - ( lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - , lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - ) - -#test comment-after-then -foo = if True - then - -- iiiiii - "a " - else - "b " - -#test comment-after-if-else-do -func = if cond - then pure 42 - else do - -- test - abc - -#test nonempty-case-short -func = case x of - False -> False - True -> True - -#test nonempty-case-long -func = - case - lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - of - False -> False - True -> True - -#test nonempty-case-long-do -func = do - case - lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - of - False -> False - True -> True - -#test empty-case-short -func = case x of {} - -#test empty-case-long -func = - case - lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - of {} - -#test empty-case-long-do -func = do - case - lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - of {} - -############################################################################### -############################################################################### -############################################################################### -#group expression.do statements -############################################################################### -############################################################################### -############################################################################### - -#test simple -func = do - stmt - stmt - -#test bind -func = do - x <- stmt - stmt x - -#test let -func = do - let x = 13 - stmt x - - -############################################################################### -############################################################################### -############################################################################### -#group expression.lists -############################################################################### -############################################################################### -############################################################################### - -#test monad-comprehension-case-of -func = - foooooo - $ [ case - foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo - of - _ -> True - ] - -############################################################################### -############################################################################### -############################################################################### -#group expression.let -############################################################################### -############################################################################### -############################################################################### - -#test single-bind-comment-long -testMethod foo bar baz qux = - let x = undefined foo bar baz qux qux baz bar :: String - -- some comment explaining the in expression - in undefined foo x :: String - -#test single-bind-comment-short -testMethod foo bar baz qux = - let x = undefined :: String - -- some comment explaining the in expression - in undefined :: String - -#test single-bind-comment-before -testMethod foo bar baz qux = - -- some comment explaining the in expression - let x = undefined :: String in undefined :: String - -#test multiple-binds-comment -foo foo bar baz qux = - let a = 1 - b = 2 - c = 3 - -- some comment explaining the in expression - in undefined :: String - - -############################################################################### -############################################################################### -############################################################################### -#group stylisticspecialcases -############################################################################### -############################################################################### -############################################################################### - -#test operatorprefixalignment-even-with-multiline-alignbreak -func = - foo - $ [ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - , bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb - ] - ++ [ccccccccccccccccccccccccccccccccccccccccccccccccccccccccc] - - -############################################################################### -############################################################################### -############################################################################### -#group module -############################################################################### -############################################################################### -############################################################################### - -#test simple -module Main where - -#test no-exports -module Main () where - -#test one-export -module Main (main) where - -#test several-exports -module Main (main, test1, test2) where - -#test many-exports -module Main - ( main - , test1 - , test2 - , test3 - , test4 - , test5 - , test6 - , test7 - , test8 - , test9 - ) where - -#test exports-with-comments -module Main - ( main - -- main - , test1 - , test2 - -- Test 3 - , test3 - , test4 - -- Test 5 - , test5 - -- Test 6 - ) where - -#test simple-export-with-things -module Main (Test(..)) where - -#test simple-export-with-module-contents -module Main (module Main) where - -#test export-with-things -module Main (Test(Test, a, b)) where - -#test export-with-things-comment --- comment1 - -module Main - ( Test(Test, a, b) - , foo -- comment2 - ) -- comment3 - where - -#test export-with-empty-thing -module Main (Test()) where - -#test empty-with-comment --- Intentionally left empty - -############################################################################### -############################################################################### -############################################################################### -#group module.import -############################################################################### -############################################################################### -############################################################################### - -#test simple-import -import Data.List - -#test simple-import-alias -import Data.List as L - -#test simple-qualified-import -import qualified Data.List - -#test simple-qualified-import-alias -import qualified Data.List as L - -#test simple-safe -import safe Data.List as L - -#test simple-source -import {-# SOURCE #-} Data.List ( ) - -#test simple-safe-qualified -import safe qualified Data.List - -#test simple-safe-qualified-source -import {-# SOURCE #-} safe qualified Data.List - -#test simple-qualified-package -import qualified "base" Data.List - -#test qualifier-effect -import {-# SOURCE #-} safe qualified "base" Data.List as L -import {-# SOURCE #-} safe qualified "base" Data.List ( ) -import {-# SOURCE #-} safe qualified Data.List hiding ( ) - -#test instances-only -import qualified Data.List ( ) - -#test one-element -import Data.List ( nub ) - -#test several-elements -import Data.List ( foldl' - , indexElem - , nub - ) - -#test a-ridiculous-amount-of-elements -import Test ( Long - , anymore - , fit - , items - , line - , list - , not - , onA - , quite - , single - , that - , will - , with - ) - -#test with-things -import Test ( (+) - , (:!)(..) - , (:*)((:.), T7, t7) - , (:.) - , T - , T2() - , T3(..) - , T4(T4) - , T5(T5, t5) - , T6((<|>)) - ) - -#test hiding -import Test hiding ( ) -import Test as T - hiding ( ) - -#test import-hiding-many -import Prelude as X - hiding ( head - , init - , last - , maximum - , minimum - , pred - , read - , readFile - , succ - , tail - , undefined - ) - -#test long-module-name-simple -import TestJustAbitToLongModuleNameLikeThisOneIs - ( ) -import TestJustShortEnoughModuleNameLikeThisOne ( ) - -#test long-module-name-as -import TestJustAbitToLongModuleNameLikeThisOneI - as T -import TestJustShortEnoughModuleNameLikeThisOn as T - -#test long-module-name-hiding -import TestJustAbitToLongModuleNameLikeTh - hiding ( ) -import TestJustShortEnoughModuleNameLike hiding ( ) - -#test long-module-name-simple-items -import MoreThanSufficientlyLongModuleNameWithSome - ( compact - , fit - , inA - , items - , layout - , not - , that - , will - ) - -#test long-module-name-hiding-items -import TestJustAbitToLongModuleNameLikeTh - hiding ( abc - , def - , ghci - , jklm - ) -import TestJustShortEnoughModuleNameLike hiding ( abc - , def - , ghci - , jklm - ) - -#test long-module-name-other -import {-# SOURCE #-} safe qualified "qualifier" A hiding ( ) -import {-# SOURCE #-} safe qualified "qualifiers" A - hiding ( ) -import {-# SOURCE #-} safe qualified "qualifiers" AlsoAf as T -import {-# SOURCE #-} safe qualified "qualifiers" AlsoAff ( ) -import {-# SOURCE #-} safe qualified "qualifiers" AlsoAff - as T -import {-# SOURCE #-} safe qualified "qualifiers" AlsoAffe - ( ) - -#test import-with-comments --- Test -import Data.List ( nub ) -- Test -{- Test -} -import qualified Data.List as L - ( foldl' ) {- Test -} - --- Test -import Test ( test ) - -#test import-with-comments-2 - -import Test ( abc - , def - -- comment - ) - -#test import-with-comments-3 - -import Test ( abc - -- comment - ) - -#test import-with-comments-4 -import Test ( abc - -- comment - , def - , ghi - {- comment -} - , jkl - -- comment - ) - -#test import-with-comments-5 -import Test ( -- comment - ) - -#test long-bindings -import Test ( longbindingNameThatoverflowsColum - ) -import Test ( Long - ( List - , Of - , Things - ) - ) - -#test things-with-with-comments -import Test ( Thing - ( -- Comments - ) - ) -import Test ( Thing - ( Item - -- and Comment - ) - ) -import Test ( Thing - ( With - -- Comments - , and - -- also - , items - -- ! - ) - ) -#test prefer-dense-empty-list -import VeryLongModuleNameThatCouldEvenCauseAnEmptyBindingListToExpandIntoMultipleLine - ( ) - -#test preamble full-preamble -{-# LANGUAGE BangPatterns #-} - -{- - - Test module - -} -module Test - ( test1 - -- ^ test - , test2 - -- | test - , test3 - , test4 - , test5 - , test6 - , test7 - , test8 - , test9 - , test10 - -- Test 10 - ) where - --- Test -import Data.List ( nub ) -- Test -{- Test -} -import qualified Data.List as L - ( foldl' ) {- Test -} - --- Test -import Test ( test ) - -#test sorted-imports -import Aaa -import Baa - -#test sorted-import-groups -import Zaa -import Zab - -import Aaa -import Baa - -#test sorted-qualified-imports -import Boo -import qualified Zoo - -#test imports-groups-same-module -import Boo ( a ) - -import Boo ( b ) - -#test sorted-imports-nested -import A.B.C -import A.B.D - -############################################################################### -############################################################################### -############################################################################### -#group type synonyms -############################################################################### -############################################################################### -############################################################################### - -#test simple-synonym - -type MySynonym = String - -#test parameterised-synonym - -type MySynonym a = [a] - -#test long-function-synonym - --- | Important comment thrown in -type MySynonym b a - = MySynonym a b -> MySynonym a b -> MyParamType a b -> MyParamType a b - -#test overflowing-function-synonym - -type MySynonym3 b a - = MySynonym a b - -> MySynonym a b - -- ^ RandomComment - -> MyParamType a b - -> MyParamType a b - -> MySynonym2 b a - -#test synonym-with-kind-sig - -{-# LANGUAGE StarIsType #-} - -type MySynonym (a :: * -> *) - = MySynonym a b - -> MySynonym a b - -> MyParamType a b - -> MyParamType a b - -> MySynonym2 b a - -#test synonym-with-constraint - -type MySynonym a = Num a => a -> Int - -#test synonym-overflowing-with-constraint - -type MySynonym a - = Num a - => AReallyLongTypeName - -> AnotherReallyLongTypeName - -> AThirdTypeNameToOverflow - -#test synonym-forall - -{-# LANGUAGE RankNTypes #-} - -type MySynonym = forall a . [a] - -#test synonym-operator - -type (:+:) a b = (a, b) - -#test synonym-infix - -type a `MySynonym` b = a -> b - -#test synonym-infix-operator - -type a :+: b = (a, b) - -#test synonym-infix-parens - -type (a `Foo` b) c = (a, b, c) - -#test synonym-comments - -type Foo a -- fancy type comment - = -- strange comment - Int - -#test synonym-type-operators -type (a :+: b) = (a, b) - -#test synonym-multi-parens -#pending loses extra parens - -type ((a :+: b) c) = (a, c) - -#test synonym-tuple-type-many-comments - -type Foo - = ( -- t1 - A -- t2 - , -- t3 - B -- t4 - ) -- t5 - -############################################################################### -############################################################################### -############################################################################### -#group class.instance -############################################################################### -############################################################################### -############################################################################### - -#test simple-instance - -instance MyClass Int where - myMethod x = x + 1 - -#test simple-method-comment - -instance MyClass Int where - myMethod x = - -- insightful comment - x + 1 - -#test simple-method-signature - -instance MyClass Int where - myMethod :: Int -> Int - myMethod x = x + 1 - -#test simple-long-method-signature - -instance MyClass Int where - myMethod - :: Int - -> Int - -> AReallyLongType - -> AReallyLongType - -> AReallyLongType - -> Int - myMethod x = x + 1 - -#test simple-two-methods - -instance MyClass Int where - myMethod x = x + 1 - myMethod2 x = x + 1 - -#test simple-two-signatures - -instance MyClass Int where - myMethod - :: Int - -> Int - -> AReallyLongType - -> AReallyLongType - -> AReallyLongType - -> Int - myMethod x = x + 1 - - myMethod2 :: Int -> Int - myMethod2 x = x + 1 - -#test simple-instance-comment - --- | This instance should be commented on -instance MyClass Int where - - -- | This method is also comment-worthy - myMethod x = x + 1 - -#test instance-with-type-family - -instance MyClass Int where - type MyType = Int - - myMethod :: MyType -> Int - myMethod x = x + 1 - -#test instance-with-type-family-below-method - -instance MyClass Int where - - type MyType = String - - myMethod :: MyType -> Int - myMethod x = x + 1 - - type MyType = Int - -#test instance-with-data-family - -instance MyClass Int where - - -- | This data is very important - data MyData = IntData - { intData :: String - , intData2 :: Int - } - - myMethod :: MyData -> Int - myMethod = intData2 - -#test instance-with-data-family-below-method - -instance MyClass Int where - -- | This data is important - data MyData = Test Int Int - - myMethod :: MyData -> Int - myMethod = intData2 - - -- | This data is also important - data MyData2 = IntData - { intData :: String - -- ^ Interesting field - , intData2 :: Int - } - -#test instance-with-newtype-family-and-deriving - -{-# LANGUAGE TypeFamilies #-} - -module Lib where - -instance Foo () where - newtype Bar () = Baz () - deriving (Eq, Ord, Show) - bar = Baz - -#test instance-with-newtype-family-and-record - -instance Foo Int where - newtype Bar Int = BarInt - { unBarInt :: Int - } - -############################################################################### -############################################################################### -############################################################################### -#group gh-357 -############################################################################### -############################################################################### -############################################################################### - -#test type-instance-without-comment - -{-# language TypeFamilies #-} -type family F a -type instance F Int = IO Int - -#test type-instance-with-comment - -{-# language TypeFamilies #-} -type family F a -type instance F Int = IO Int -- x - -#test type-instance-with-module-header - -{-# language TypeFamilies #-} -module M where -type family F a -type instance F Int = IO Int - -#test newtype-instance-without-comment - -{-# language TypeFamilies #-} -data family F a -newtype instance F Int = N Int - -#test newtype-instance-with-comment - -{-# language TypeFamilies #-} -data family F a -newtype instance F Int = N Int -- x - -#test newtype-instance-with-module-header - -{-# language TypeFamilies #-} -module M where -data family F a -newtype instance F Int = N Int - -#test data-instance-without-comment - -{-# language TypeFamilies #-} -data family F a -data instance F Int = D Int - -#test data-instance-with-comment - -{-# language TypeFamilies #-} -data family F a -data instance F Int = D Int -- x - -#test data-instance-with-module-header - -{-# language TypeFamilies #-} -module M where -data family F a -data instance F Int = D Int - -#test instance-type-without-comment - -{-# language TypeFamilies #-} -class C a where - type family F a -instance C Int where - type F Int = IO Int - -#test instance-type-with-comment - -{-# language TypeFamilies #-} -class C a where - type family F a -instance C Int where - type F Int = IO Int -- x - -#test instance-type-with-module-header - -{-# language TypeFamilies #-} -module M where -class C a where - type family F a -instance C Int where - type F Int = IO Int - -#test instance-newtype-without-comment - -{-# language TypeFamilies #-} -class C a where - data family F a -instance C Int where - newtype F Int = N Int - -#test instance-newtype-with-comment - -{-# language TypeFamilies #-} -class C a where - data family F a -instance C Int where - newtype F Int = N Int -- x - -#test instance-newtype-with-module-header - -{-# language TypeFamilies #-} -module M where -class C a where - data family F a -instance C Int where - newtype F Int = N Int - -#test instance-data-without-comment - -{-# language TypeFamilies #-} -class C a where - data family F a -instance C Int where - data F Int = D Int - -#test instance-data-with-comment - -{-# language TypeFamilies #-} -class C a where - data family F a -instance C Int where - data F Int = D Int -- x - -#test instance-data-with-module-header - -{-# language TypeFamilies #-} -module M where -class C a where - data family F a -instance C Int where - data F Int = D Int - -############################################################################### -############################################################################### -############################################################################### -#group whitespace-newlines -############################################################################### -############################################################################### -############################################################################### - -#test module-import-newlines - -module Main where - -import Prelude - -firstDecl = True - -#test function-where-newlines - -func = do - - -- complex first step - aaa - - -- complex second step - bbb - - where - - helper :: Helper - helper = helpful - - other :: Other - other = True - - -############################################################################### -############################################################################### -############################################################################### -#group typefam.instance -############################################################################### -############################################################################### -############################################################################### - -#test simple-typefam-instance - -type instance MyFam Bool = String - -#test simple-typefam-instance-param-type - -type instance MyFam (Maybe a) = a -> Bool - -#test simple-typefam-instance-parens -#pending the parens cause problems since ghc-8.8 - -type instance (MyFam (String -> Int)) = String - -#test simple-typefam-instance-overflow - -type instance MyFam ALongishType - = AMuchLongerTypeThanThat - -> AnEvenLongerTypeThanTheLastOne - -> ShouldDefinitelyOverflow - -#test simple-typefam-instance-comments - --- | A happy family -type instance MyFam Bool -- This is an odd one - = AnotherType -- Here's another - -#test simple-typefam-instance-parens-comment -#pending the parens cause problems since ghc-8.8 - --- | A happy family -type instance (MyFam Bool) -- This is an odd one - = -- Here's another - AnotherType diff --git a/data/14-extensions.blt b/data/14-extensions.blt deleted file mode 100644 index 18fc24f..0000000 --- a/data/14-extensions.blt +++ /dev/null @@ -1,241 +0,0 @@ -############################################################################### -############################################################################### -############################################################################### -#group extensions -############################################################################### -############################################################################### -############################################################################### - -############################################################################### -## MultiWayIf -#test multiwayif 1 -{-# LANGUAGE MultiWayIf #-} -func = if - | cond1 -> loooooooooooooooooooooooooooooong expr1 - | cond2 -> loooooooooooooooooooooooooooooong expr2 - -#test multiwayif 2 -{-# LANGUAGE MultiWayIf #-} -func = do - foo - bar $ if - | cond1 -> loooooooooooooooooooooooooooooong expr1 - | cond2 -> loooooooooooooooooooooooooooooong expr2 - - -############################################################################### -## LambdaCase -#test lambdacase 1 -{-# LANGUAGE LambdaCase #-} -func = \case - FooBar -> x - Baz -> y - - - -############################################################################### -## ImplicitParams -#test ImplicitParams 1 -{-# LANGUAGE ImplicitParams #-} -func :: (?asd::Int) -> () - -#test ImplicitParams 2 -{-# LANGUAGE ImplicitParams #-} -func - :: ( ?asd - :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - -> () - - -############################################################################### -## RecursiveDo -#test recursivedo 1 -{-# LANGUAGE RecursiveDo #-} -foo = do - rec a <- f b - b <- g a - return (a, b) - -#test recursivedo 2 -{-# LANGUAGE RecursiveDo #-} -foo = do - rec -- comment - a <- f b - b <- g a - return (a, b) - -############################################################################### -## ExplicitNamespaces + PatternSynonyms -#test explicitnamespaces_patternsynonyms export -{-# LANGUAGE ExplicitNamespaces #-} -{-# LANGUAGE PatternSynonyms #-} -module Test (type (++), (++), pattern Foo) where - -#test explicitnamespaces_patternsynonyms import -{-# LANGUAGE ExplicitNamespaces #-} -{-# LANGUAGE PatternSynonyms #-} -import Test ( type (++) - , (++) - , pattern (:.) - , pattern Foo - ) - -############################################################################### -## PatternSynonyms -#test bidirectional pattern -{-# LANGUAGE PatternSynonyms #-} -pattern J x = Just x - -#test unidirection pattern -{-# LANGUAGE PatternSynonyms #-} -pattern F x <- (x, _) - -#test explicitly bidirectional pattern -{-# LANGUAGE PatternSynonyms #-} -pattern HeadC x <- x : xs where - HeadC x = [x] - -#test Multiple arguments -{-# LANGUAGE PatternSynonyms #-} -pattern Head2 x y <- x : y : xs where - Head2 x y = [x, y] - -#test Infix argument -{-# LANGUAGE PatternSynonyms #-} -pattern x :> y = [x, y] - -#test Record argument -{-# LANGUAGE PatternSynonyms #-} -pattern MyData { a, b, c } = [a, b, c] - -#test long pattern match -{-# LANGUAGE PatternSynonyms #-} -pattern myLongLeftVariableName `MyLongInfixPatternMatcher` myLongRightVariableName = - [myLongLeftVariableName, myLongRightVariableName] - -#test long explicitly bidirectional match -{-# LANGUAGE PatternSynonyms #-} -pattern myLeftVariableName `MyInfixPatternMatcher` myRightVariableName <- - [myLongLeftVariableName, myLongRightVariableName] where - MyInfixPatternMatcher x y = [x, x, y] - -#test Pattern synonym types -{-# LANGUAGE PatternSynonyms #-} -pattern J :: a -> Maybe a -pattern J x = Just x - -#test pattern synonym bidirectional multiple cases -{-# LANGUAGE PatternSynonyms #-} -{-# LANGUAGE ViewPatterns #-} -pattern Signed x <- (asSigned -> x) where - Signed (Neg x) = -x - Signed Zero = 0 - Signed (Pos x) = x - -#test pattern synonym bidirectional multiple cases long -{-# LANGUAGE PatternSynonyms #-} -{-# LANGUAGE ViewPatterns #-} -pattern Signed xxxxxxxxxxxxxxxxxxxxxxxx <- - (asSigned -> xxxxxxxxxxxxxxxxxxxxxxxx) where - Signed (Neg x) = -x - Signed Zero = 0 - Signed (Pos x) = x - -#test pattern synonym bidirectional multiple cases with comments -{-# LANGUAGE PatternSynonyms #-} -{-# LANGUAGE ViewPatterns #-} -pattern Signed x <- (asSigned -> x) where - Signed (Neg x) = -x -- negative comment - Signed Zero = 0 -- zero comment - Signed (Pos x) = x -- positive comment - -#test Pattern synonym types multiple names -{-# LANGUAGE PatternSynonyms #-} -pattern J, K :: a -> Maybe a - -#test Pattern synonym type sig wrapped -{-# LANGUAGE PatternSynonyms #-} -pattern LongMatcher - :: longlongtypevar - -> longlongtypevar - -> longlongtypevar - -> Maybe [longlongtypevar] -pattern LongMatcher x y z = Just [x, y, z] - - -############################################################################### -## UnboxedTuples + MagicHash -#test unboxed-tuple and vanilla names -{-# LANGUAGE UnboxedTuples #-} -spanKey :: (# Int, Int #) -> (# Int, Int #) -spanKey = case foo of - (# bar, baz #) -> (# baz, bar #) - -#test unboxed-tuple and hashed name -{-# LANGUAGE MagicHash, UnboxedTuples #-} -spanKey :: (# Int#, Int# #) -> (# Int#, Int# #) -spanKey = case foo of - (# bar#, baz# #) -> (# baz# +# bar#, bar# #) - - -############################################################################### -## QuasiQuotes -#test quasi-quotes simple 1 -{-# LANGUAGE QuasiQuotes #-} -func = [blub| - asd - qwe - |] - -#test quasi-quotes simple 2 -{-# LANGUAGE QuasiQuotes #-} -func = [blub| - asd - qwe|] - -#test quasi-quotes ignoring layouting -{-# LANGUAGE QuasiQuotes #-} -func = do - let body = [json| - hello - |] - pure True - -#test quasi-quotes ignoring layouting, strict mode --- brittany { lconfig_allowHangingQuasiQuotes: False } -{-# LANGUAGE QuasiQuotes #-} -func = do - let - body = - [json| - hello - |] - pure True - -############################################################################### -## OverloadedLabels -#test bare label -{-# LANGUAGE OverloadedLabels #-} -foo = #bar - -#test applied and composed label -{-# LANGUAGE OverloadedLabels #-} -foo = #bar . #baz $ fmap #foo xs - -############################################################################### -## ImplicitParams - -#test IP usage -{-# LANGUAGE ImplicitParams #-} -foo = ?bar - -#test IP binding -{-# LANGUAGE ImplicitParams #-} -foo = let ?bar = Foo in value - -#test IP type signature -{-# LANGUAGE ImplicitParams #-} -foo :: (?bar::Bool) => () -foo = () diff --git a/data/15-regressions.blt b/data/15-regressions.blt deleted file mode 100644 index 9a6b623..0000000 --- a/data/15-regressions.blt +++ /dev/null @@ -1,874 +0,0 @@ -############################################################################### -############################################################################### -############################################################################### -#group regression -############################################################################### -############################################################################### -############################################################################### - -#test newlines-comment -func = do - abc <- foo - ---abc -return () - -#test parenthesis-around-unit -func = (()) - -#test let-defs indentation -func = do - let foo True = True - foo _ = False - return () - -#test record update indentation 1 -func = do - s <- mGet - mSet $ s { _lstate_indent = _lstate_indent state } - -#test record update indentation 2 -func = do - s <- mGet - mSet $ s { _lstate_indent = _lstate_indent state - , _lstate_foo = _lstate_foo state - } - -#test record update indentation 3 -func = do - s <- mGet - mSet $ s - { _lstate_indent = _lstate_indent lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - , _lstate_foo = _lstate_foo lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - } - -#test record construction 1 -func = Foo { _lstate_indent = _lstate_indent state } - -#test record construction 2 -func = Foo - { _lstate_indent = _lstate_indent lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - , _lstate_fooo = _lstate_foo lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - } - -#test record construction 3 -func = do - Foo { _lstate_indent = _lstate_indent lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - , _lstate_foo = _lstate_foo lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - } - -#test post-indent comment -func = do --- abc - -- def - return () - -#test post-unindent comment -func = do - do - return () - -- abc - -- def - return () - -#test CPP empty comment case -#pending CPP parsing needs fixing for roundTripEqual -{-# LANGUAGE CPP #-} -module Test where -func = do -#if FOO - let x = 13 -#endif - stmt x - -## really, the following should be handled by forcing the Alt to multiline -## because there are comments. as long as this is not implemented though, -## we should ensure the trivial solution works. -#test comment inline placement (temporary) -func - :: Int -- basic indentation amount - -> Int -- currently used width in current line (after indent) - -- used to accurately calc placing of the current-line - -> LayoutDesc - -> Int - -#test some indentation thingy -func = - ( lkjadljasldjalskdjaldjalsdjkalsdjlaksdjlasjdlajsaldskj - $ abc - $ def - $ ghi - $ jkl - ) - -#test parenthesized operator -buildG bounds0 edges0 = accumArray (flip (:)) [] bounds0 (map reassoc edges0) - where reassoc (v, e, w) = (v, (e, w)) - -#test record pattern matching stuff -downloadRepoPackage = case repo of - RepoLocal {..} -> return () - RepoLocal { abc } -> return () - RepoLocal{} -> return () - -#test do let comment indentation level problem -func = do - let (primaryPkg, otherPkgs) = selectPrimaryLocalPackage pwd pkgs' - (bproblems, x) = resolveBuildTargets primaryPkg otherPkgs utargets'' - -- default local dir target if there's no given target - utargets'' = "foo" - return () - -#test list comprehension comment placement -func = - [ (thing, take 10 alts) --TODO: select best ones - | (thing, _got, alts@(_ : _)) <- nosuchFooThing - , gast <- award - ] - -#test if-then-else comment placement -func = if x - then if y -- y is important - then foo - else bar - else Nothing - -#test qualified infix pattern -wrapPatPrepend pat prepElem = do - patDocs <- layoutPat pat - case Seq.viewl patDocs of - Seq.EmptyL -> return $ Seq.empty - x1 Seq.:< xR -> do - x1' <- docSeq [prepElem, return x1] - return $ x1' Seq.<| xR - -#test type signature multiline forcing issue -layoutWriteNewlineBlock - :: ( MonadMultiWriter Text.Builder.Builder m - , MonadMultiState LayoutState m - , MonadMultiWriter (Seq String) m - ) - => m () - -#test multiwayif proper indentation -{-# LANGUAGE MultiWayIf #-} -readMergePersConfig path shouldCreate conf = do - exists <- liftIO $ System.Directory.doesFileExist path - if - | exists -> do - contents <- liftIO $ ByteString.readFile path -- no lazy IO, tyvm. - fileConf <- case Data.Yaml.decodeEither contents of - Left e -> do - liftIO - $ putStrErrLn - $ "error reading in brittany config from " - ++ path - ++ ":" - liftIO $ putStrErrLn e - mzero - Right x -> return x - return $ fileConf Semigroup.<> conf - | shouldCreate -> do - liftIO $ ByteString.writeFile path $ Data.Yaml.encode $ cMap - (Option . Just . runIdentity) - staticDefaultConfig - return $ conf - | otherwise -> do - return conf - -#test nested pattern alignment issue" -func = BuildReport - where - convertInstallOutcome = case result of - Left BR.PlanningFailed -> PlanningFailed - Left (BR.DependentFailed p) -> DependencyFailed p - Left (BR.DownloadFailed _) -> DownloadFailed - Left (BR.UnpackFailed _) -> UnpackFailed - Left (BR.ConfigureFailed _) -> ConfigureFailed - Left (BR.BuildFailed _) -> BuildFailed - Left (BR.TestsFailed _) -> TestsFailed - Left (BR.InstallFailed _) -> InstallFailed - Right (BR.BuildOk _ _ _ ) -> InstallOk - -#test nested pattern alignment issue" -func = BuildReport - where - convertInstallOutcome = case result of - Left BR.PlanningFailed -> PlanningFailed - Left (BR.DependentFailed p) -> DependencyFailed p - Left (BR.DownloadFailed _) -> DownloadFailed - Left (BR.UnpackFailed _) -> UnpackFailed - Left (BR.ConfigureFailed _) -> ConfigureFailed - Left (BR.BuildFailed _) -> BuildFailed - Left (BR.TestsFailed _) -> TestsFailed - Left (BR.InstallFailed _) -> InstallFailed - Right (BR.BuildOk _ _ _ ) -> InstallOk - -#test partially overflowing alignment issue" -showPackageDetailedInfo pkginfo = - renderStyle (style { lineLength = 80, ribbonsPerLine = 1 }) - $ char '*' - $+$ something - [ entry "Synopsis" synopsis hideIfNull reflowParagraphs - , entry "Versions available" - sourceVersions - (altText null "[ Not available from server ]") - (dispTopVersions 9 (preferredVersions pkginfo)) - , entry - "Versions installed" - installedVersions - (altText - null - (if hasLib pkginfo then "[ Not installed ]" else "[ Unknown ]") - ) - (dispTopVersions 4 (preferredVersions pkginfo)) - , entry "Homepage" homepage orNotSpecified text - , entry "Bug reports" bugReports orNotSpecified text - , entry "Description" description hideIfNull reflowParagraphs - , entry "Category" category hideIfNull text - , entry "License" license alwaysShow disp - , entry "Author" author hideIfNull reflowLines - , entry "Maintainer" maintainer hideIfNull reflowLines - , entry "Source repo" sourceRepo orNotSpecified text - , entry "Executables" executables hideIfNull (commaSep text) - , entry "Flags" flags hideIfNull (commaSep dispFlag) - , entry "Dependencies" dependencies hideIfNull (commaSep dispExtDep) - , entry "Documentation" haddockHtml showIfInstalled text - , entry "Cached" haveTarball alwaysShow dispYesNo - , if not (hasLib pkginfo) - then empty - else text "Modules:" - $+$ nest 4 (vcat (map disp . sort . modules $ pkginfo)) - ] - -#test issue 7a -isValidPosition position | validX && validY = Just position - | otherwise = Nothing - -#test issue-6-pattern-linebreak-validity -## this is ugly, but at least syntactically valid. -foo = Reflex.runSpiderHost $ ReflexHost.hostApp $ do - (inputEvent :: Reflex.Event Reflex.Spider String, inputFire :: String - -> IO Bool ) <- - ReflexHost.newExternalEvent - liftIO . forkIO . forever $ getLine >>= inputFire - ReflexHost.performEvent_ $ fmap (liftIO . putStrLn) inputEvent - -#test issue 16 -foldrDesc f z = unSwitchQueue $ \q -> - switch (Min.foldrDesc (f unTaggedF) z q) (Min.foldrAsc (f unTaggedF) z q) - -#test issue 18 -autocheckCases = - [ ("Never Deadlocks" , representative deadlocksNever) - , ("No Exceptions" , representative exceptionsNever) - , ("Consistent Result", alwaysSame) -- already representative - ] - -#test issue 18b -autocheckCases = - [ ("Never Deadlocks", representative deadlocksNever) - , ("No Exceptions" , representative exceptionsNever) - , ( "Consistent Result" - , alwaysSame -- already representative - ) - ] - -#test issue 18c -func = - [ (abc, (1111, 1111)) - , (def, (2, 2)) - , foo -- comment - ] - -#test issue 26 -foo a b = g a b -- fooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo - where g a b = b + b * a - -#test issue 26b -foo a b = g a b where g a b = b + b * a -- fooooooooooooooooooooooooooooooooooo - -#test aggressive alignment 1 -func = do - abc <- expr - abcccccccccccccccccc <- expr - abcccccccccccccccccccccccccccccccccccccccccc <- expr - abccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc <- expr - -#test example alignment 1 -func (MyLongFoo abc def) = 1 -func (Bar a d ) = 2 -func _ = 3 - -#test listcomprehension-case-of -parserCompactLocation = - [ try - $ [ ParseRelAbs (Text.Read.read digits) _ _ - | digits <- many1 digit - , rel1 :: Maybe (Either Int (Ratio Int)) <- optionMaybe - [ case divPart of - Nothing -> Left $ Text.Read.read digits - Just ddigits -> - Right $ Text.Read.read digits % Text.Read.read ddigits - | digits <- many1 digit - , divPart <- optionMaybe (string "/" *> many1 digit) - ] - ] - ] - -#test opapp-specialcasing-1 -func = fooooooooooooooooooooooooooooooooo $ foooooooooooooooooooooooooooooooo - foooooooooooooooooooooooooooooooo - foooooooooooooooooooooooooooooooo - -#test opapp-specialcasing-2 -func = - fooooooooooooooooooooooooooooooooo - + foooooooooooooooooooooooooooooooo foooooooooooooooooooooooooooooooo - foooooooooooooooooooooooooooooooo - -#test opapp-specialcasing-3 -func = fooooooooooooooooooooooooooooooooo + foooooooooooooooooooooooooooooooo - [ foooooooooooooooooooooooooooooooo - , foooooooooooooooooooooooooooooooo - , foooooooooooooooooooooooooooooooo - ] - -#test opapp-indenting -parserPrim = - [ r - | r <- - [ SGPPrimFloat $ bool id (0 -) minus $ readGnok "parserPrim" - (d1 ++ d2 ++ d3 ++ d4) - | d2 <- string "." - , d3 <- many1 (oneOf "0123456789") - , _ <- string "f" - ] - <|> [ SGPPrimFloat $ bool id (0 -) minus $ fromIntegral - (readGnok "parserPrim" d1 :: Integer) - | _ <- string "f" - ] - <|> [ SGPPrimInt $ bool id (0 -) minus $ fromIntegral - (readGnok "parserPrim" d1 :: Integer) - | _ <- string "i" - ] - ] - -#test another-parspacing-testcase - -samples = (SV.unpackaaaaadat) <&> \f -> - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - -#test recordupd-singleline-bug - -runBrittany tabSize text = do - let config' = staticDefaultConfig - config = config' - { _conf_layout = (_conf_layout config') - { _lconfig_indentAmount = coerce tabSize - } - , _conf_forward = forwardOptionsSyntaxExtsEnabled - } - parsePrintModule config text - -#test recordupd-singleline-bug-left - --- brittany { lconfig_indentPolicy: IndentPolicyLeft } -runBrittany tabSize text = do - let - config' = staticDefaultConfig - config = config' - { _conf_layout = (_conf_layout config') - { _lconfig_indentAmount = coerce tabSize - } - , _conf_forward = forwardOptionsSyntaxExtsEnabled - } - parsePrintModule config text - -#test issue 37 - -foo = - ( a - , -- comment1 - b - -- comment2 - , c - ) - -#test issue 38 - -{-# LANGUAGE TypeApplications #-} -foo = bar @Baz - -#test comment-before-BDCols -{-# LANGUAGE TypeApplications #-} -layoutPatternBindFinal alignmentToken binderDoc mPatDoc clauseDocs = do - docAlt - $ -- one-line solution - [ docCols - (ColBindingLine alignmentToken) - [ docSeq (patPartInline ++ [guardPart]) - , docSeq - [ appSep $ return binderDoc - , docForceSingleline $ return body - , wherePart - ] - ] - | not hasComments - , [(guards, body, _bodyRaw)] <- [clauseDocs] - , let guardPart = singleLineGuardsDoc guards - , wherePart <- case mWhereDocs of - Nothing -> return @[] $ docEmpty - Just [w] -> return @[] $ docSeq - [ docSeparator - , appSep $ docLit $ Text.pack "where" - , docSetIndentLevel $ docForceSingleline $ return w - ] - _ -> [] - ] - ++ -- one-line solution + where in next line(s) - [ docLines - $ [ docCols - (ColBindingLine alignmentToken) - [ docSeq (patPartInline ++ [guardPart]) - , docSeq - [appSep $ return binderDoc, docForceParSpacing $ return body] - ] - ] - ++ wherePartMultiLine - | [(guards, body, _bodyRaw)] <- [clauseDocs] - , let guardPart = singleLineGuardsDoc guards - , Data.Maybe.isJust mWhereDocs - ] - ++ -- two-line solution + where in next line(s) - [ docLines - $ [ docForceSingleline - $ docSeq (patPartInline ++ [guardPart, return binderDoc]) - , docEnsureIndent BrIndentRegular $ docForceSingleline $ return - body - ] - ++ wherePartMultiLine - | [(guards, body, _bodyRaw)] <- [clauseDocs] - , let guardPart = singleLineGuardsDoc guards - ] - -#test comment-testcase-17 -{-# LANGUAGE MultiWayIf #-} -func = do - let foo = if - | Constuctoooooooooooooooooooooooooooooooooooor `elem` artics -- TODO - -> max - (defLen - 0.2) -- TODO - (defLen * 0.8) - | otherwise -> max (defLen - 0.05) (defLen * 0.95) -- TODO - return True - -#test issue 49 - -foo n = case n of - 1 -> True - -1 -> False - -bar n = case n of - (-2, -2) -> (-2, -2) - -#test issue 48 b - -{-# LANGUAGE TypeApplications #-} -foo = - let a = b @1 - cccc = () - in foo - -#test issue 52 a - -{-# LANGUAGE RecordWildCards #-} -v = A { a = 1, .. } where b = 2 - -#test issue 52 b - -{-# LANGUAGE RecordWildCards #-} -v = A { .. } where b = 2 - -#test issue 52 c - -{-# LANGUAGE RecordWildCards #-} -v = A { a = 1, b = 2, c = 3 } - -#test issue 63 a -test :: Proxy 'Int - -#test issue 63 b -test :: Proxy '[ 'True] - -#test issue 63 c -test :: Proxy '[Bool] - -#test issue 64 -{-# LANGUAGE RankNTypes, KindSignatures #-} -func - :: forall m str - . (Str str, Monad m) - => Int - -> Proxy (str :: [*]) - -> m (Tagged str String) - -#test issue 65 -widgetsDyn = - [ [ vBox - [ padTop Max outputLinesWidget - , padRight Max wid1 <+> flowWidget -- alignment here is strange/buggy - , padBottom (Pad 5) help - ] - ] - | wid1 <- promptDyn - , (flowWidget, _) <- flowResultD - , outputLinesWidget <- outputLinesWidgetD - , help <- suggestionHelpBox - , parser <- cmdParserD - ] - -#test issue 67 -fmapuv :: U.Unbox a => (a -> b) -> U.Vector a -> V.Vector b -fmapuv f xs = G.generate (G.length xs) (f . (xs G.!)) - - -#test parallellistcomp-workaround -cs0 = 0 : [ c / Interval n | c <- cs | n <- [1..] ] - -#test issue 70 -{-# LANGUAGE TemplateHaskell #-} -deriveFromJSON (unPrefix "assignPost") ''AssignmentPost - -#test issue 110 -main = -- a - let --b - x = 1 -- x - y = 2 -- y - in do - print x - print y - -#test issue 111 -alternatives :: Parser (Maybe Text) -alternatives = - alternativeOne -- first try this one - <|> alterantiveTwo -- then this one - <|> alternativeThree -- then this one - where - alternativeOne = purer "one" - alternativeTwo = purer "two" - alterantiveThree = purer "three" - -#test issue 116 -{-# LANGUAGE BangPatterns #-} -func = do - let !forced = some - pure () - -#test let-in-hanging -spanKey p q = case minViewWithKey q of - Just ((k, _), q') | p k -> - let (kas, q'') = spanKey p q' in ((k, a) : kas, q'') - _ -> ([], q) - -#test issue 125 -a :: () ':- () - -#test issue 128 -func = do - createDirectoryIfMissing True path - openFile fileName AppendMode - -#test hspar-comments - -alternatives :: Parser (Maybe Text) -alternatives = -- a - ( -- b - alternativeOne -- c - <|> alterantiveTwo -- d - <|> alternativeThree -- e - ) -- f - -#test issue 133 -{-# LANGUAGE ScopedTypeVariables #-} -func - :: forall a - . () - => aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - -> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -func - :: () - => aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - -> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - -#test alignment-potential-overflow -go l [] = Right l -go l ((IRType, _a) : eqr) = go l eqr -go l ((_, IRType) : eqr) = go l eqr -go _ ((IRTypeError ps t1 t2, _) : _) = Left $ makeError ps t1 t2 -go _ ((_, IRTypeError ps t1 t2) : _) = Left $ makeError ps t1 t2 - -#test issue 89 - type-family-instance -type instance XPure StageParse = () -type Pair a = (a, a) - -#test issue 144 --- brittany { lconfig_indentAmount: 4, lconfig_indentPolicy: IndentPolicyMultiple } -dsfnjKeekbwwbosbOfakxqRsiyix cnehokzozwbVaguvu migbnaRwutbz = - let - eyuAfrarIso' - :: (RveoexdxunuAafalm -> Axlau (Axlau (a, OinejrdCplle))) - -> Gbodoy - -> Axlau (Axlau OinejrdCplle, Gbodoy) - eyuAfrarIso' = ulcPaaekBst cnehokzozwbVaguvu - amkgoxEhalazJjxunecCuIfaw - :: Axlau (Axlau OinejrdCplle, Gbodoy) -> Axlau RqlnrluYqednbCiggxi - amkgoxEhalazJjxunecCuIfaw uKqviuBisjtn = do - (sEmo, quc) <- uKqviuBisjtn - pure (xoheccewfWoeyiagOkfodiq sEmo quc) - xoheccewfWoeyiagOkfodiq - :: Axlau OinejrdCplle -> Gbodoy -> RqlnrluYqednbCiggxi - xoheccewfWoeyiagOkfodiq sEmo quc = case migbnaRwutbz of - Afogmf -> xgeqe (OfBkkuih quc) (Ciitog quc) sEmo - in QabqyilexuiNizzhsQuxxac migbnaRwutbz (hwaTihhjt lhowvscIiozgqe) - -#test issue 159 -spec = do - it "creates a snapshot at the given level" . withGraph runDB $ do - lift $ do - studentDiagnosticReadingLevel updatedStudent `shouldBe` Just 10 -- x - elaSnapshotReadingLevel snapshot `shouldBe` 12 - -#test non-bottom-specialcase-altsearch -jaicyhHumzo btrKpeyiFej mava = do - m :: VtohxeRgpmgsu <- qloxIfiq mava - case m of - ZumnaoFujayerIswadabo kkecm chlixxag -> do - imomue <- ozisduRaqiseSBAob btrKpeyiFej $ \s -> - case MizA.pigevo kkecm (_tc_gulawulu s) of - Ebocaba -> - ( s { _tc_gulawulu = MizA.jxariu kkecm rwuRqxzhjo (_tc_gulawulu s) } - , Gtzvonm - ) - Xcde{} -> (s, Pioemav) - pure imomue - -#test issue 214 --- brittany { lconfig_indentPolicy: IndentPolicyMultiple } -foo = bar - arg1 -- this is the first argument - arg2 -- this is the second argument - arg3 -- this is the third argument, now I'll skip one comment - arg4 - arg5 -- this is the fifth argument - arg6 -- this is the sixth argument - -#test issue 234 - -True `nand` True = False -nand _ _ = True - -nor False False = True -_ `nor` _ = False - -#test issue 256 prefix operator match - -f ((:) a as) = undefined - -#test issue 228 lambda plus lazy or bang pattern - -{-# LANGUAGE BangPatterns #-} -a = \x -> x -b = \ ~x -> x -c = \ !x -> x -d = \(~x) -> x - -#test type signature with forall and constraint -{-# LANGUAGE RankNTypes #-} -func :: forall b . Show b => b -> String - -#test issue 267 - -{-# LANGUAGE TypeFamilies #-} -f :: ((~) a b) => a -> b -f = id - -#test large record update --- brittany { lconfig_indentPolicy: IndentPolicyLeft } -vakjkeSulxudbFokvir = Duotpo - { _ekku_gcrpbze = xgonae (1 :: Int) - , _oola_louwu = FoqsiYcuidx - { _xxagu_umea_iaztoj = xgonae False - , _tuktg_tizo_kfikacygsqf = xgonae False - , _ahzbo_xpow_otq_nzeyufq = xgonae False - , _uagpi_lzps_luy_xcjn = xgonae False - , _dxono_qjef_aqtafq_bes = xgonae False - , _yzuaf_nviy_vuhwxe_ihnbo_uhw = xgonae False - , _iwcit_fzjs_yerakt_dicox_mtryitko = xgonae False - , _ehjim_ucfe_dewarp_newrt_gso = xgonae False - , _ogtxb_ivoj_amqgai_rttui_xuwhetb = xgonae False - , _bhycb_iexz_megaug_qunoa_ohaked = xgonae False - , _nnmbe_uqgt_ewsuga_vaiis = xgonae False - , _otzil_ucvugaiyj_aosoiatunx_asir = xgonae False - } - , _iwsc_lalojz = XqspaiDainqw - { _uajznac_ugah = xgonae (80 :: Int) - , _qayziku_gazibzDejipj = xgonae DewizeCxwgyiKjig - , _auhebll_fiqjxyArfxia = xgonae (2 :: Int) - , _zubfuhq_dupiwnIoophXameeet = xgonae True - , _oavnuqg_opkreyOufuIkifiin = xgonae True - , _ufojfwy_fhuzcePeqwfu = xgonae (50 :: Int) - , _mlosikq_zajdxxSeRoelpf = xgonae (50 :: Int) - , _heemavf_fjgOfoaikh = xgonae (FyoVfvdygaZuzuvbeWarwuq 3) - , _ohxmeoq_ogtbfoPtqezVseu = xgonae (EdjotoLcbapUdiuMmytwoig 0.7) - , _omupuiu_ituamexjuLccwu = xgonae (30 :: Int) - , _xoseksf_atvwwdwaoHanofMyUvujjopoz = xgonae True - , _umuuuat_nuamezwWeqfUqzrnaxwp = xgonae False - , _uuriguz_wixhutbuKecigaFiwosret = xgonae True - , _betohxp_scixaLsvcesErtwItxrnaJmuz = xgonae False - , _lchxgee_olaetGcqzuqxVujenCzexub = xgonae True - , _egeibao_imamkuigqikhZdcbpidokVcixiqew = xgonae False - } - , _nloo_cfmrgZcisiugk = YuwodSavxwnicBekuel - { _oebew_rrtpvthUzlizjAqIwesly = xgonae False - , _blkff_Acxoid = xgonae False - , _datei_YewolAowoqOpunvpgu = xgonae BeekgUzojaPnixxaruJehyPmnnfu - , _ejfrj_eheb_justvh_pumcp_ismya = xgonae False - } - , _kena_uzeddovosoki = NyoRvshullezUpauud - { _mtfuwi_TUVEmoi = xgonae RZXKoytUtogx - , _larqam_adaxPehaylZafeqgpc = xgonae False - } - , _spob_qipaarx = KaxavsmOtoyeaq { _rusrirw_okx = Tajemkix [] } - , _vmah_uivucnfka_ikaquebxay_gzcm = xgonae False - , _qaqb_eykzuyuwi = xgonae False - -- test comment - } - -#test large record wildcard comment - --- brittany { lconfig_indentPolicy: IndentPolicyLeft } -vakjkeSulxudbFokvir = Duotpo - { _ekku_gcrpbze = xgonae (1 :: Int) - , _spob_qipaarx = KaxavsmOtoyeaq { _rusrirw_okx = Tajemkix [] } - , _vmah_uivucnfka_ikaquebxay_gzcm = xgonae False - , _qaqb_eykzuyuwi = xgonae False - -- test comment - , -- N.B. - .. -- x - } - -#test issue 263 - -func = abc + def - -- a - -- b - - -- comment - - where - abc = 13 - def = 1 - -#test AddBaseY/EnsureIndent float in effect - -zItazySunefp twgq nlyo lwojjoBiecao = - let mhIarjyai = - ukwAausnfcn - $ XojlsTOSR.vuwOvuvdAZUOJaa - $ XojlsTOSR.vkesForanLiufjeDI - $ XojlsTOSR.vkesForanLiufjeDI - $ XojlsTOSR.popjAyijoWarueeP - $ XojlsTOSR.jpwuPmafuDqlbkt nlyo - $ XojlsTOSR.jpwuPmafuDqlbkt xxneswWhxwng - $ XojlsTOSR.jpwuPmafuDqlbkt oloCuxeDdow - $ XojlsTOSR.jpwuPmafuDqlbkt (uwurrvoNnukzefuDjeh lwojjoBiecao nlyo) - $ etOslnoz lwojjoBiecao - in kucotg $ (bbbr, Yoxe.Dwzbuzi.zrLokoTnuy piv) - -#test module initial comment --- test -module MyModule where - -#test issue 231 - -foo = - [ ("xxx", "xx") - , -- - ("xx" , "xx") - -- - , ("xx" , "xxxxx") - , ("xx" , "xx") - ] - -#test issue 231 not - -foo = - [ ("xx", "xx") - , ( "xx" -- - , "xx" - ) - , ("xx", "xxxxx") - , ("xx", "xx") - ] - -#test issue 281 - -module Main - ( DataTypeI - , DataTypeII(DataConstructor) - -- * Haddock heading - , name - ) where - -#test type level list - -xeoeqibIaib - :: ( KqujhIsaus m - , XivuvIpoboi Droqifim m - , IgorvOtowtf m - , RyagaYaqac m - , QouruDU m - ) - => MaptAdfuxgu - -> Zcnxg NsxayqmvIjsezea -- ^ if Lvqucoo, opsip jl reyoyhk lfil qaculxgd - -> QNOZqwuzg - -> Eoattuq - '[ XkatytdWdquraosu -- test comment - , KyezKijim -- another test comment - , DjmioeePuoeg - , NinrxoiOwezc - , QATAlrijacpk - , TrutvotwIwifiqOjdtu - , CoMmuatjwr - , BoZckzqyodseZole - , VagfwoXaeChfqe - ] - m - () - -#test recordupd-overflow-bad-multiline-spacing - -createRedirectedProcess processConfig = do - let redirectedProc = (_processConfig_inner processConfig) - { std_in = CreatePipe - , std_out = CreatePipe - , std_err = CreatePipe - } - foo - -#test issue 282 - -instance HasDependencies SomeDataModel where - -- N.B. Here is a bunch of explanatory context about the relationship - -- between these data models or whatever. - type Dependencies SomeDataModel - = (SomeOtherDataModelId, SomeOtherOtherDataModelId) - -#test stupid-do-operator-combination - -func = - do - y - >>= x diff --git a/data/16-pending.blt b/data/16-pending.blt deleted file mode 100644 index c8147d8..0000000 --- a/data/16-pending.blt +++ /dev/null @@ -1,35 +0,0 @@ -############################################################################### -############################################################################### -############################################################################### -#group pending -############################################################################### -############################################################################### -############################################################################### - - - -## this testcase is not about idempotency, but about _how_ the output differs -## from the input; i cannot really express this yet with the current -## test-suite. -## #test ayaz -## -## myManageHook = -## composeOne [isFullscreen -?> doFullFloat, isDialog -?> doFloat, transience] -## <+> composeAll -## [ className =? "Pidgin" --> doFloat -## , className =? "XCalc" --> doFloat -## -- plan9port's acme -## , className =? "acme" --> doFloat -## -- Acme with Vi bindings editor -## , title =? "ED" --> doFloat -## , title =? "wlc-x11" --> doFloat -## , className =? "Skype" --> doFloat -## , className =? "ffplay" --> doFloat -## , className =? "mpv" --> doFloat -## , className =? "Plugin-container" --> doFloat -- Firefox flash, etc. -## -- Firefox works well tiled, but it has dialog windows we want to float. -## , appName =? "Browser" --> doFloat -## ] -## where -## role = stringProperty "WM_WINDOW_ROLE" - diff --git a/data/30-tests-context-free.blt b/data/30-tests-context-free.blt deleted file mode 100644 index d73e6d4..0000000 --- a/data/30-tests-context-free.blt +++ /dev/null @@ -1,1461 +0,0 @@ - -############################################################################### -############################################################################### -############################################################################### -#group type signatures -############################################################################### -############################################################################### -############################################################################### - -#test simple001 -func :: a -> a - -#test long typeVar -func - :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -#test keep linebreak mode -func - :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lakjsdlkjasldkj - -> lakjsdlkjasldkj - -#test simple parens 1 -func :: ((a)) - -#test simple parens 2 -func :: (a -> a) -> a - -#test simple parens 3 -func :: a -> (a -> a) - -#test did anyone say parentheses? -func :: (((((((((()))))))))) - --- current output is.. funny. wonder if that can/needs to be improved.. -#test give me more! -#pending nested tuples over line length -func :: ((((((((((((((((((((((((((((((((((((((((((())))))))))))))))))))))))))))))))))))))))))) - -#test unit -func :: () - - -############################################################################### - -#test paren'd func 1 -func - :: ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lakjsdlkjasldkj - -> lakjsdlkjasldkj - ) - -#test paren'd func 2 -func - :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> (lakjsdlkjasldkj -> lakjsdlkjasldkj) - -#test paren'd func 3 -func - :: (lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd -> lakjsdlkjasldkj) - -> lakjsdlkjasldkj - -#test paren'd func 4 -func - :: ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - -> lakjsdlkjasldkj - -#test paren'd func 5 -func - :: ( ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - ) - -############################################################################### - -#test type application 1 -func :: asd -> Either a b - -#test type application 2 -func - :: asd - -> Either - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -#test type application 3 -func - :: asd - -> Trither - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -#test type application 4 -func - :: Trither - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> asd - -#test type application 5 -func - :: Trither - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - (lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd -> asd) - -#test type application 6 -func - :: Trither - asd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - -#test type application paren 1 -func - :: asd - -> ( Trither - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - -#test type application paren 2 -func - :: asd - -> ( Trither - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -#test type application paren 3 -func - :: ( Trither - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> asd - -############################################################################### - -#test list simple -func :: [a -> b] - -#test list func -func - :: [ lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ] - -#test list paren -func - :: [ ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - ] - -################################################################## -- ############# - -#test tuple type 1 -func :: (a, b, c) - -#test tuple type 2 -func :: ((a, b, c), (a, b, c), (a, b, c)) - -#test tuple type long -func - :: ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - -#test tuple type nested -func - :: ( ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - , (lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd) - , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - ) - -#test tuple type function -func - :: [ ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - ] -############################################################################### -#test type operator stuff -#pending HsOpTy -test050 :: a :+: b -test051 - :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - :+: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd -test052 - :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - :+: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -############################################################################### - -#test forall oneliner -{-# LANGUAGE ScopedTypeVariables #-} -func :: forall (a :: *) b . a -> b - -#test forall context multiline -{-# LANGUAGE ScopedTypeVariables #-} -func - :: forall m - . Foo - => ColMap2 - -> ColInfo - -> ColInfo - -> ColInfo - -> ColInfo - -> m () - -#test forall no-context multiline -{-# LANGUAGE ScopedTypeVariables #-} -func - :: forall m - . ColMap2 - -> ColInfo - -> ColInfo - -> ColInfo - -> ColInfo - -> ColInfo - -> m () - -#test language pragma issue -{-# LANGUAGE ScopedTypeVariables #-} -func :: forall (a :: *) b . a -> b - -#test comments 1 -func :: a -> b -- comment - -#test comments 2 -funcA :: a -> b -- comment A -funcB :: a -> b -- comment B - -#test comments all --- a -func -- b - :: -- c - a -- d - -> -- e - ( -- f - c -- g - , -- h - d -- i - ) -- j-- k - -############################################################################### - -#test ImplicitParams 1 -{-# LANGUAGE ImplicitParams #-} -func :: (?asd::Int) -> () - -#test ImplicitParams 2 -{-# LANGUAGE ImplicitParams #-} -func - :: ( ?asd - :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - ) - -> () - - -############################################################################### -############################################################################### -############################################################################### -#group type signatures pragmas -############################################################################### -############################################################################### -############################################################################### - -#test inline pragma 1 -func = f - where - {-# INLINE f #-} - f = id - -#test inline pragma 2 -func = ($) - where - {-# INLINE ($) #-} - ($) = id - -#test inline pragma 3 -func = f - where - {-# INLINE CONLIKE [1] f #-} - f = id - -#test inline pragma 4 -func = f - where - {-# INLINE [~1] f #-} - f = id - - -############################################################################### -############################################################################### -############################################################################### -#group data type declarations -############################################################################### -############################################################################### -############################################################################### - -#test single record -data Foo = Bar - { foo :: Baz - } - -#test record multiple names -data Foo = Bar - { foo, bar :: Baz - } - -#test record multiple types -data Foo = Bar - { foo :: Baz - , bar :: Bizzz - } - -#test record multiple types and names -data Foo = Bar - { foo, biz :: Baz - , bar :: Bizzz - } - -#test record multiple types deriving -data Foo = Bar - { foo :: Baz - , bar :: Bizzz - } - deriving Show - -#test record multiple types deriving -data Foo = Bar - { foo :: Baz - , bar :: Bizzz - } - deriving (Show, Eq, Monad, Functor, Traversable, Foldable) - - -############################################################################### -############################################################################### -############################################################################### -#group equation.basic -############################################################################### -############################################################################### -############################################################################### -## some basic testing of different kinds of equations. -## some focus on column layouting for multiple-equation definitions. -## (that part probably is not implemented in any way yet.) - -#test basic 1 -func x = x - -#test infix 1 -x *** y = x - -#test symbol prefix -(***) x y = x - - -############################################################################### -############################################################################### -############################################################################### -#group equation.patterns -############################################################################### -############################################################################### -############################################################################### - -#test wildcard -func _ = x - -#test simple long pattern -func reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable = - x - -#test simple multiline pattern -func reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable - = x - -#test another multiline pattern -func reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable a b - = x - -#test simple constructor -func (A a) = a - -#test list constructor -func (x : xr) = x - -#test some other constructor symbol -func (x :+: xr) = x - - -############################################################################### -############################################################################### -############################################################################### -#group equation.guards -############################################################################### -############################################################################### -############################################################################### -#test simple guard -func | True = x - -#test multiple-clauses-1 -func x - | x = simple expression - | otherwise = 0 - -#test multiple-clauses-2 -func x - | a somewhat longer guard x = "and a somewhat longer expession that does not" - | otherwise = "fit without putting the guards in new lines" - -#test multiple-clauses-3 -func x - | very long guard, another rather long guard that refers to x = nontrivial - expression - foo - bar - alsdkjlasdjlasj - | otherwise = 0 - -#test multiple-clauses-4 -func x - | very long guard, another rather long guard that refers to x - = nontrivialexpression foo bar alsdkjlasdjlasj - | otherwise - = 0 - -#test multiple-clauses-5 -func x - | very loooooooooooooooooooooooooooooong guard - , another rather long guard that refers to x - = nontrivial expression foo bar alsdkjlasdjlasj - | otherwise - = 0 - - -############################################################################### -############################################################################### -############################################################################### -#group expression.basic -############################################################################### -############################################################################### -############################################################################### - -#test var -func = x - -describe "infix op" $ do -#test 1 -func = x + x - -#test long -func = - mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj - + mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj - -#test long keep linemode 1 -func = - mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj - + mweroiuxlskdfjlksj - + mweroiuxlskdfjlksj - -#test long keep linemode 2 -func = - mweroiuxlskdfjlksj - + mweroiuxlskdfjlksj - + mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj - -#test literals -func = 1 -func = "abc" -func = 1.1e5 -func = 'x' -func = 981409823458910394810928414192837123987123987123 - -#test lambdacase -{-# LANGUAGE LambdaCase #-} -func = \case - FooBar -> x - Baz -> y - -#test lambda -func = \x -> abc - -describe "app" $ do -#test 1 -func = klajsdas klajsdas klajsdas - -#test 2 -func = lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - -#test 3 -func = lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - lakjsdlajsdljas - lakjsdlajsdljas - lakjsdlajsdljas - -### -#group expression.basic.sections -### - -#test left -func = (1 +) - -#test right -func = (+ 1) - -#test left inf -## TODO: this could be improved.. -func = (1 `abc`) - -#test right inf -func = (`abc` 1) - -### -#group tuples -### - -#test 1 -func = (abc, def) - -#test 2 -func = - ( lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - , lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd - ) - -#test let in on single line -foo = - let longIdentifierForShortValue = 1 - in longIdentifierForShortValue + longIdentifierForShortValue - - - -############################################################################### -############################################################################### -############################################################################### -#group expression.do statements -############################################################################### -############################################################################### -############################################################################### - -#test simple -func = do - stmt - stmt - -#test bind -func = do - x <- stmt - stmt x - -#test let -func = do - let x = 13 - stmt x - - -############################################################################### -############################################################################### -############################################################################### -#group expression.lists -############################################################################### -############################################################################### -############################################################################### - -#test monad-comprehension-case-of -func = - foooooo - $ [ case - foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo - of - _ -> True - ] - - -############################################################################### -############################################################################### -############################################################################### -#group expression.multiwayif -############################################################################### -############################################################################### -############################################################################### - -#test simple -{-# LANGUAGE MultiWayIf #-} -func = if - | cond1 -> loooooooooooooooooooooooooooooong expr1 - | cond2 -> loooooooooooooooooooooooooooooong expr2 - -#test simplenested -{-# LANGUAGE MultiWayIf #-} -func = do - foo - bar $ if - | cond1 -> loooooooooooooooooooooooooooooong expr1 - | cond2 -> loooooooooooooooooooooooooooooong expr2 - - -############################################################################### -############################################################################### -############################################################################### -#group stylisticspecialcases -############################################################################### -############################################################################### -############################################################################### - -#test operatorprefixalignment-even-with-multiline-alignbreak -func = - foo - $ [ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - , bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb - ] - ++ [ccccccccccccccccccccccccccccccccccccccccccccccccccccccccc] - -############################################################################### -############################################################################### -############################################################################### -#group module -############################################################################### -############################################################################### -############################################################################### - -#test simple -module Main where - -#test no-exports -module Main () where - -#test one-export -module Main (main) where - -#test several-exports -module Main (main, test1, test2) where - -#test many-exports -module Main - ( main - , test1 - , test2 - , test3 - , test4 - , test5 - , test6 - , test7 - , test8 - , test9 - ) where - -#test exports-with-comments -module Main - ( main - -- main - , test1 - , test2 - -- Test 3 - , test3 - , test4 - -- Test 5 - , test5 - -- Test 6 - ) where - -#test simple-export-with-things -module Main (Test(..)) where - -#test simple-export-with-module-contents -module Main (module Main) where - -#test export-with-things -module Main (Test(Test, a, b)) where - -#test export-with-empty-thing -module Main (Test()) where - -#test empty-with-comment --- Intentionally left empty - -############################################################################### -############################################################################### -############################################################################### -#group import -############################################################################### -############################################################################### -############################################################################### - -#test simple-import -import Data.List - -#test simple-import-alias -import Data.List as L - -#test simple-qualified-import -import qualified Data.List - -#test simple-qualified-import-alias -import qualified Data.List as L - -#test simple-safe -import safe Data.List as L - -#test simple-source -import {-# SOURCE #-} Data.List () - -#test simple-safe-qualified -import safe qualified Data.List hiding (nub) - -#test simple-safe-qualified-source -import {-# SOURCE #-} safe qualified Data.List - -#test simple-qualified-package -import qualified "base" Data.List - -#test qualifier-effect -import {-# SOURCE #-} safe qualified "base" Data.List as L -import {-# SOURCE #-} safe qualified "base" Data.List () -import {-# SOURCE #-} safe qualified Data.List hiding () - -#test instances-only -import qualified Data.List () - -#test one-element -import Data.List (nub) - -#test several-elements -import Data.List (foldl', indexElem, nub) - -#test a-ridiculous-amount-of-elements -import Test - ( Long - , anymore - , fit - , items - , line - , list - , not - , onA - , quite - , single - , that - , will - , with - ) - -#test with-things -import Test ((+), T, T2(), T3(..), T4(T4), T5(T5, t5), T6((<|>))) - -#test hiding -import Test hiding () -import Test as T hiding () - -#test import-hiding-many -import Prelude as X - hiding - ( head - , init - , last - , maximum - , minimum - , pred - , read - , readFile - , succ - , tail - , undefined - ) - -#test long-module-name-simple -import MoreThanSufficientlyLongModuleNameWithSome - (compact, fit, inA, items, layout, not, that, will) -import TestJustAbitToLongModuleNameLikeThisOneIs () -import TestJustShortEnoughModuleNameLikeThisOne () - -#test long-module-name-as -import TestJustAbitToLongModuleNameLikeThisOneI as T -import TestJustShortEnoughModuleNameLikeThisOn as T - -#test long-module-name-hiding -import TestJustAbitToLongModuleNameLikeTh hiding () -import TestJustShortEnoughModuleNameLike hiding () - -#test long-module-name-simple-items -import MoreThanSufficientlyLongModuleNameWithSome - (compact, fit, inA, items, layout, not, that, will) - -#test long-module-name-hiding-items -import TestJustShortEnoughModuleNameLike hiding (abc, def, ghci, jklm) - -#test import-with-comments --- Test -import Data.List (nub) -- Test -{- Test -} -import qualified Data.List as L (foldl') {- Test -} - -#test import-with-comments-2 - -import Test - ( abc - , def - -- comment - ) - -#test import-with-comments-3 - -import Test - ( abc - -- comment - ) - -#test import-with-comments-4 -import Test - ( abc - -- comment - , def - , ghi - {- comment -} - , jkl - -- comment - ) - --- Test -import Test (test) - -#test import-with-comments-5 -import Test - ( -- comment - ) - -#test long-bindings -import Test (longbindingNameThatoverflowsColum) -import Test (Long(List, Of, Things)) - -#test things-with-with-comments -import Test - ( Thing - ( With - -- Comments - , and - -- also - , items - -- ! - ) - ) -import Test - ( Thing - ( Item - -- and Comment - ) - ) -import Test - ( Thing - ( With - -- Comments - , and - -- also - , items - -- ! - ) - ) - -#test prefer-dense-empty-list -import VeryLongModuleNameThatCouldEvenCauseAnEmptyBindingListToExpandIntoMultipleLine - () - -#test preamble full-preamble -{-# LANGUAGE BangPatterns #-} - -{- - - Test module - -} -module Test - ( test1 - -- ^ test - , test2 - -- | test - , test3 - , test4 - , test5 - , test6 - , test7 - , test8 - , test9 - , test10 - ) where - --- Test -import Data.List (nub) -- Test -{- Test -} -import qualified Data.List as L (foldl') {- Test -} - --- Test -import Test (test) - -############################################################################### -############################################################################### -############################################################################### -#group regression -############################################################################### -############################################################################### -############################################################################### - -#test newlines-comment -func = do - abc <- foo - ---abc -return () - -#test parenthesis-around-unit -func = (()) - -#test let-defs indentation -func = do - let - foo True = True - foo _ = False - return () - -#test let-defs no indent -func = do - let - foo True = True - foo _ = False - return () - -#test let-defs no indent -func = do - let - foo = True - b = False - return () - -#test let-defs no indent -func = - let - foo = True - b = False - in return () - -#test record update indentation 1 -func = do - s <- mGet - mSet $ s { _lstate_indent = _lstate_indent state } - -#test record update indentation 2 -func = do - s <- mGet - mSet $ s - { _lstate_indent = _lstate_indent state - , _lstate_foo = _lstate_foo state - } - -#test record update indentation 3 -func = do - s <- mGet - mSet $ s - { _lstate_indent = _lstate_indent lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - , _lstate_foo = _lstate_foo kasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - } - -#test record construction 1 -func = Foo { _lstate_indent = _lstate_indent state } - -#test record construction 2 -func = Foo - { _lstate_indent = _lstate_indent lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - , _lstate_foo = _lstate_foo lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - } - -#test record construction 3 -func = do - Foo - { _lstate_indent = _lstate_indent lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - , _lstate_foo = _lstate_foo lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd - } - -#test post-indent comment -func = do --- abc - -- def - return () - -#test post-unindent comment -func = do - do - return () - -- abc - -- def - return () - -#test CPP empty comment case -#pending CPP parsing needs fixing for roundTripEqual -{-# LANGUAGE CPP #-} -module Test where -func = do -#if FOO - let x = 13 -#endif - stmt x - -## really, the following should be handled by forcing the Alt to multiline -## because there are comments. as long as this is not implemented though, -## we should ensure the trivial solution works. -#test comment inline placement (temporary) -func - :: Int -- basic indentation amount - -> Int -- currently used width in current line (after indent) - -- used to accurately calc placing of the current-line - -> LayoutDesc - -> Int - -#test some indentation thingy -func = - (lkjadljasldjalskdjaldjalsdjkalsdjlaksdjlasjdlajsaldskj - $ abc - $ def - $ ghi - $ jkl - ) - -#test parenthesized operator -buildG bounds0 edges0 = accumArray (flip (:)) [] bounds0 (map reassoc edges0) - where reassoc (v, e, w) = (v, (e, w)) - -#test record pattern matching stuff -downloadRepoPackage = case repo of - RepoLocal {..} -> return () - RepoLocal { abc } -> return () - RepoLocal{} -> return () - -#test do let comment indentation level problem -func = do - let - (primaryPkg, otherPkgs) = selectPrimaryLocalPackage pwd pkgs' - (bproblems, x) = resolveBuildTargets primaryPkg otherPkgs utargets'' - -- default local dir target if there's no given target - utargets'' = "foo" - return () - -#test list comprehension comment placement -func = - [ (thing, take 10 alts) --TODO: select best ones - | (thing, _got, alts@(_ : _)) <- nosuchFooThing - , gast <- award - ] - -#test if-then-else comment placement -func = if x - then if y -- y is important - then foo - else bar - else Nothing - -#test qualified infix pattern -wrapPatPrepend pat prepElem = do - patDocs <- layoutPat pat - case Seq.viewl patDocs of - Seq.EmptyL -> return $ Seq.empty - x1 Seq.:< xR -> do - x1' <- docSeq [prepElem, return x1] - return $ x1' Seq.<| xR - -#test type signature multiline forcing issue -layoutWriteNewlineBlock - :: ( MonadMultiWriter Text.Builder.Builder m - , MonadMultiState LayoutState m - , MonadMultiWriter (Seq String) m - ) - => m () - -#test multiwayif proper indentation -{-# LANGUAGE MultiWayIf #-} -readMergePersConfig path shouldCreate conf = do - exists <- liftIO $ System.Directory.doesFileExist path - if - | exists -> do - contents <- liftIO $ ByteString.readFile path -- no lazy IO, tyvm. - fileConf <- case Data.Yaml.decodeEither contents of - Left e -> do - liftIO - $ putStrErrLn - $ "error reading in brittany config from " - ++ path - ++ ":" - liftIO $ putStrErrLn e - mzero - Right x -> return x - return $ fileConf Semigroup.<> conf - | shouldCreate -> do - liftIO $ ByteString.writeFile path $ Data.Yaml.encode $ cMap - (Option . Just . runIdentity) - staticDefaultConfig - return $ conf - | otherwise -> do - return conf - -#test nested pattern alignment issue" -func = BuildReport - where - convertInstallOutcome = case result of - Left BR.PlanningFailed -> PlanningFailed - Left (BR.DependentFailed p) -> DependencyFailed p - Left (BR.DownloadFailed _) -> DownloadFailed - Left (BR.UnpackFailed _) -> UnpackFailed - Left (BR.ConfigureFailed _) -> ConfigureFailed - Left (BR.BuildFailed _) -> BuildFailed - Left (BR.TestsFailed _) -> TestsFailed - Left (BR.InstallFailed _) -> InstallFailed - Right (BR.BuildOk _ _ _) -> InstallOk - -#test nested pattern alignment issue" -func = BuildReport - where - convertInstallOutcome = case result of - Left BR.PlanningFailed -> PlanningFailed - Left (BR.DependentFailed p) -> DependencyFailed p - Left (BR.DownloadFailed _) -> DownloadFailed - Left (BR.UnpackFailed _) -> UnpackFailed - Left (BR.ConfigureFailed _) -> ConfigureFailed - Left (BR.BuildFailed _) -> BuildFailed - Left (BR.TestsFailed _) -> TestsFailed - Left (BR.InstallFailed _) -> InstallFailed - Right (BR.BuildOk _ _ _) -> InstallOk - -#test partially overflowing alignment issue" -showPackageDetailedInfo pkginfo = - renderStyle (style { lineLength = 80, ribbonsPerLine = 1 }) - $ char '*' - $+$ something - [ entry "Synopsis" synopsis hideIfNull reflowParagraphs - , entry - "Versions available" - sourceVersions - (altText null "[ Not available from server ]") - (dispTopVersions 9 (preferredVersions pkginfo)) - , entry - "Versions installed" - installedVersions - (altText - null - (if hasLib pkginfo then "[ Not installed ]" else "[ Unknown ]") - ) - (dispTopVersions 4 (preferredVersions pkginfo)) - , entry "Homepage" homepage orNotSpecified text - , entry "Bug reports" bugReports orNotSpecified text - , entry "Description" description hideIfNull reflowParagraphs - , entry "Category" category hideIfNull text - , entry "License" license alwaysShow disp - , entry "Author" author hideIfNull reflowLines - , entry "Maintainer" maintainer hideIfNull reflowLines - , entry "Source repo" sourceRepo orNotSpecified text - , entry "Executables" executables hideIfNull (commaSep text) - , entry "Flags" flags hideIfNull (commaSep dispFlag) - , entry "Dependencies" dependencies hideIfNull (commaSep dispExtDep) - , entry "Documentation" haddockHtml showIfInstalled text - , entry "Cached" haveTarball alwaysShow dispYesNo - , if not (hasLib pkginfo) - then empty - else text "Modules:" - $+$ nest 4 (vcat (map disp . sort . modules $ pkginfo)) - ] - -#test issue 7a -isValidPosition position - | validX && validY = Just position - | otherwise = Nothing - -#test issue-6-pattern-linebreak-validity -## this is ugly, but at least syntactically valid. -foo = Reflex.runSpiderHost $ ReflexHost.hostApp $ do - (inputEvent :: Reflex.Event Reflex.Spider String, inputFire :: String - -> IO Bool) <- - ReflexHost.newExternalEvent - liftIO . forkIO . forever $ getLine >>= inputFire - ReflexHost.performEvent_ $ fmap (liftIO . putStrLn) inputEvent - -#test issue 15 --- Test.hs -module Test where - -data X = X - -#test issue 16 -foldrDesc f z = unSwitchQueue $ \q -> - switch (Min.foldrDesc (f unTaggedF) z q) (Min.foldrAsc (f unTaggedF) z q) - -#test issue 18 -autocheckCases = - [ ("Never Deadlocks", representative deadlocksNever) - , ("No Exceptions", representative exceptionsNever) - , ("Consistent Result", alwaysSame) -- already representative - ] - -#test issue 18b -autocheckCases = - [ ("Never Deadlocks", representative deadlocksNever) - , ("No Exceptions", representative exceptionsNever) - , ( "Consistent Result" - , alwaysSame -- already representative - ) - ] - -#test issue 18c -func = - [ (abc, (1111, 1111)) - , (def, (2, 2)) - , foo -- comment - ] - -#test issue 26 -foo a b = g a b -- fooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo - where g a b = b + b * a - -#test issue 26b -foo a b = g a b where g a b = b + b * a -- fooooooooooooooooooooooooooooooooooo - -#test aggressive alignment 1 -func = do - abc <- expr - abcccccccccccccccccc <- expr - abcccccccccccccccccccccccccccccccccccccccccc <- expr - abccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc <- expr - -#test example alignment 1 -func (MyLongFoo abc def) = 1 -func (Bar a d) = 2 -func _ = 3 - -#test listcomprehension-case-of -parserCompactLocation = - [ try - $ [ ParseRelAbs (Text.Read.read digits) _ _ - | digits <- many1 digit - , rel1 :: Maybe (Either Int (Ratio Int)) <- optionMaybe - [ case divPart of - Nothing -> Left $ Text.Read.read digits - Just ddigits -> - Right $ Text.Read.read digits % Text.Read.read ddigits - | digits <- many1 digit - , divPart <- optionMaybe (string "/" *> many1 digit) - ] - ] - ] - -#test opapp-specialcasing-1 -func = fooooooooooooooooooooooooooooooooo $ foooooooooooooooooooooooooooooooo - foooooooooooooooooooooooooooooooo - foooooooooooooooooooooooooooooooo - -#test opapp-specialcasing-2 -func = - fooooooooooooooooooooooooooooooooo - + foooooooooooooooooooooooooooooooo - foooooooooooooooooooooooooooooooo - foooooooooooooooooooooooooooooooo - -#test opapp-specialcasing-3 -func = fooooooooooooooooooooooooooooooooo + foooooooooooooooooooooooooooooooo - [ foooooooooooooooooooooooooooooooo - , foooooooooooooooooooooooooooooooo - , foooooooooooooooooooooooooooooooo - ] - -#test opapp-indenting -parserPrim = - [ r - | r <- - [ SGPPrimFloat $ bool id (0 -) minus $ readGnok - "parserPrim" - (d1 ++ d2 ++ d3 ++ d4) - | d2 <- string "." - , d3 <- many1 (oneOf "0123456789") - , _ <- string "f" - ] - <|> [ SGPPrimFloat $ bool id (0 -) minus $ fromIntegral - (readGnok "parserPrim" d1 :: Integer) - | _ <- string "f" - ] - <|> [ SGPPrimInt $ bool id (0 -) minus $ fromIntegral - (readGnok "parserPrim" d1 :: Integer) - | _ <- string "i" - ] - ] - -#test another-parspacing-testcase - -samples = (SV.unpackaaaaadat) <&> \f -> - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - -#test recordupd-singleline-bug - -runBrittany tabSize text = do - let - config' = staticDefaultConfig - config = config' - { _conf_layout = (_conf_layout config') - { _lconfig_indentAmount = coerce tabSize - } - , _conf_forward = forwardOptionsSyntaxExtsEnabled - } - parsePrintModule config text - -#test issue 38 - -{-# LANGUAGE TypeApplications #-} -foo = bar @Baz - -#test comment-before-BDCols -{-# LANGUAGE TypeApplications #-} -layoutPatternBindFinal alignmentToken binderDoc mPatDoc clauseDocs = do - docAlt - $ -- one-line solution - [ docCols - (ColBindingLine alignmentToken) - [ docSeq (patPartInline ++ [guardPart]) - , docSeq - [ appSep $ return binderDoc - , docForceSingleline $ return body - , wherePart - ] - ] - | not hasComments - , [(guards, body, _bodyRaw)] <- [clauseDocs] - , let guardPart = singleLineGuardsDoc guards - , wherePart <- case mWhereDocs of - Nothing -> return @[] $ docEmpty - Just [w] -> return @[] $ docSeq - [ docSeparator - , appSep $ docLit $ Text.pack "where" - , docSetIndentLevel $ docForceSingleline $ return w - ] - _ -> [] - ] - ++ -- one-line solution + where in next line(s) - [ docLines - $ [ docCols - (ColBindingLine alignmentToken) - [ docSeq (patPartInline ++ [guardPart]) - , docSeq - [appSep $ return binderDoc, docForceParSpacing $ return body] - ] - ] - ++ wherePartMultiLine - | [(guards, body, _bodyRaw)] <- [clauseDocs] - , let guardPart = singleLineGuardsDoc guards - , Data.Maybe.isJust mWhereDocs - ] - ++ -- two-line solution + where in next line(s) - [ docLines - $ [ docForceSingleline - $ docSeq (patPartInline ++ [guardPart, return binderDoc]) - , docEnsureIndent BrIndentRegular $ docForceSingleline $ return - body - ] - ++ wherePartMultiLine - | [(guards, body, _bodyRaw)] <- [clauseDocs] - , let guardPart = singleLineGuardsDoc guards - ] - -#test comment-testcase-17 -{-# LANGUAGE MultiWayIf #-} -func = do - let - foo = if - | Constuctoooooooooooooooooooooooooooooooooooor `elem` artics -- TODO - -> max - (defLen - 0.2) -- TODO - (defLen * 0.8) - | otherwise -> max (defLen - 0.05) (defLen * 0.95) -- TODO - return True - -#test issue 49 - -foo n = case n of - 1 -> True - -1 -> False - -bar n = case n of - (-2, -2) -> (-2, -2) - -#test issue 48 b - -{-# LANGUAGE TypeApplications #-} -foo = - let - a = b @1 - cccc = () - in foo - -#test issue 176 - -record :: Record -record = Record - { rProperties = - [ "foo" .= "bar" - , "foo" .= "bar" - , "foo" .= "bar" - , "foo" .= "bar" - , "foo" .= "bar" - , "foo" .= "bar" - , "foo" .= "bar" - , "foo" .= "bar" - ] - } - - -############################################################################### -############################################################################### -############################################################################### -#group pending -############################################################################### -############################################################################### -############################################################################### - - - -## this testcase is not about idempotency, but about _how_ the output differs -## from the input; i cannot really express this yet with the current -## test-suite. -## #test ayaz -## -## myManageHook = -## composeOne [isFullscreen -?> doFullFloat, isDialog -?> doFloat, transience] -## <+> composeAll -## [ className =? "Pidgin" --> doFloat -## , className =? "XCalc" --> doFloat -## -- plan9port's acme -## , className =? "acme" --> doFloat -## -- Acme with Vi bindings editor -## , title =? "ED" --> doFloat -## , title =? "wlc-x11" --> doFloat -## , className =? "Skype" --> doFloat -## , className =? "ffplay" --> doFloat -## , className =? "mpv" --> doFloat -## , className =? "Plugin-container" --> doFloat -- Firefox flash, etc. -## -- Firefox works well tiled, but it has dialog windows we want to float. -## , appName =? "Browser" --> doFloat -## ] -## where -## role = stringProperty "WM_WINDOW_ROLE" diff --git a/data/40-indent-policy-multiple.blt b/data/40-indent-policy-multiple.blt deleted file mode 100644 index b75c726..0000000 --- a/data/40-indent-policy-multiple.blt +++ /dev/null @@ -1,42 +0,0 @@ -############################################################################### -############################################################################### -############################################################################### -#group indent-policy-multiple -############################################################################### -############################################################################### -############################################################################### - -#test long --- brittany { lconfig_indentAmount: 4, lconfig_indentPolicy: IndentPolicyMultiple } -func = - mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj - + mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj - -#test let indAmount=4 --- brittany { lconfig_indentAmount: 4, lconfig_indentPolicy: IndentPolicyMultiple } -foo = do - let aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa = - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - foo - -#test let indAmount=8 --- brittany { lconfig_indentAmount: 8, lconfig_indentPolicy: IndentPolicyMultiple } -foo = do - let aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa = - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - foo -foo = do - let aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa = - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - foo - -#test nested do-block --- brittany { lconfig_indentAmount: 4, lconfig_indentPolicy: IndentPolicyMultiple } -foo = asdyf8asdf - "ajsdfas" - [ asjdf asyhf $ do - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa - ] diff --git a/data/Test1.hs b/data/Test1.hs new file mode 100644 index 0000000..44e6262 --- /dev/null +++ b/data/Test1.hs @@ -0,0 +1 @@ +func :: a -> a diff --git a/data/Test10.hs b/data/Test10.hs new file mode 100644 index 0000000..f1b8e0d --- /dev/null +++ b/data/Test10.hs @@ -0,0 +1,3 @@ +func + :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> (lakjsdlkjasldkj -> lakjsdlkjasldkj) diff --git a/data/Test100.hs b/data/Test100.hs new file mode 100644 index 0000000..f6643c0 --- /dev/null +++ b/data/Test100.hs @@ -0,0 +1 @@ +func = klajsdas klajsdas klajsdas diff --git a/data/Test101.hs b/data/Test101.hs new file mode 100644 index 0000000..57bac0e --- /dev/null +++ b/data/Test101.hs @@ -0,0 +1,3 @@ +func = lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd diff --git a/data/Test102.hs b/data/Test102.hs new file mode 100644 index 0000000..b361b53 --- /dev/null +++ b/data/Test102.hs @@ -0,0 +1,3 @@ +func = lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd lakjsdlajsdljas + lakjsdlajsdljas + lakjsdlajsdljas diff --git a/data/Test103.hs b/data/Test103.hs new file mode 100644 index 0000000..2b2b052 --- /dev/null +++ b/data/Test103.hs @@ -0,0 +1 @@ +func = (1 +) diff --git a/data/Test104.hs b/data/Test104.hs new file mode 100644 index 0000000..e8f99be --- /dev/null +++ b/data/Test104.hs @@ -0,0 +1 @@ +func = (+ 1) diff --git a/data/Test105.hs b/data/Test105.hs new file mode 100644 index 0000000..699ead3 --- /dev/null +++ b/data/Test105.hs @@ -0,0 +1 @@ +func = (1 `abc`) diff --git a/data/Test106.hs b/data/Test106.hs new file mode 100644 index 0000000..ccaa551 --- /dev/null +++ b/data/Test106.hs @@ -0,0 +1 @@ +func = (`abc` 1) diff --git a/data/Test107.hs b/data/Test107.hs new file mode 100644 index 0000000..99b30ec --- /dev/null +++ b/data/Test107.hs @@ -0,0 +1 @@ +func = (abc, def) diff --git a/data/Test108.hs b/data/Test108.hs new file mode 100644 index 0000000..90f6d90 --- /dev/null +++ b/data/Test108.hs @@ -0,0 +1 @@ +func = (abc, ) diff --git a/data/Test109.hs b/data/Test109.hs new file mode 100644 index 0000000..973aed0 --- /dev/null +++ b/data/Test109.hs @@ -0,0 +1 @@ +func = (, abc) diff --git a/data/Test11.hs b/data/Test11.hs new file mode 100644 index 0000000..25670eb --- /dev/null +++ b/data/Test11.hs @@ -0,0 +1,3 @@ +func + :: (lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd -> lakjsdlkjasldkj) + -> lakjsdlkjasldkj diff --git a/data/Test110.hs b/data/Test110.hs new file mode 100644 index 0000000..78d0c01 --- /dev/null +++ b/data/Test110.hs @@ -0,0 +1,6 @@ +myTupleSection = + ( verylaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaargefirstelement + , + , verylaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaargethirdelement + , + ) diff --git a/data/Test111.hs b/data/Test111.hs new file mode 100644 index 0000000..87acbec --- /dev/null +++ b/data/Test111.hs @@ -0,0 +1,4 @@ +func = + ( lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + , lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + ) diff --git a/data/Test112.hs b/data/Test112.hs new file mode 100644 index 0000000..daf62d6 --- /dev/null +++ b/data/Test112.hs @@ -0,0 +1,6 @@ +foo = if True + then + -- iiiiii + "a " + else + "b " diff --git a/data/Test113.hs b/data/Test113.hs new file mode 100644 index 0000000..26bb39d --- /dev/null +++ b/data/Test113.hs @@ -0,0 +1,5 @@ +func = if cond + then pure 42 + else do + -- test + abc diff --git a/data/Test114.hs b/data/Test114.hs new file mode 100644 index 0000000..ea9f935 --- /dev/null +++ b/data/Test114.hs @@ -0,0 +1,3 @@ +func = case x of + False -> False + True -> True diff --git a/data/Test115.hs b/data/Test115.hs new file mode 100644 index 0000000..eb88667 --- /dev/null +++ b/data/Test115.hs @@ -0,0 +1,7 @@ +func = + case + lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + of + False -> False + True -> True diff --git a/data/Test116.hs b/data/Test116.hs new file mode 100644 index 0000000..5d7739c --- /dev/null +++ b/data/Test116.hs @@ -0,0 +1,7 @@ +func = do + case + lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + of + False -> False + True -> True diff --git a/data/Test117.hs b/data/Test117.hs new file mode 100644 index 0000000..43e6130 --- /dev/null +++ b/data/Test117.hs @@ -0,0 +1 @@ +func = case x of {} diff --git a/data/Test118.hs b/data/Test118.hs new file mode 100644 index 0000000..85c98c6 --- /dev/null +++ b/data/Test118.hs @@ -0,0 +1,5 @@ +func = + case + lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + of {} diff --git a/data/Test119.hs b/data/Test119.hs new file mode 100644 index 0000000..195201e --- /dev/null +++ b/data/Test119.hs @@ -0,0 +1,5 @@ +func = do + case + lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + of {} diff --git a/data/Test12.hs b/data/Test12.hs new file mode 100644 index 0000000..fa012f7 --- /dev/null +++ b/data/Test12.hs @@ -0,0 +1,5 @@ +func + :: ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) + -> lakjsdlkjasldkj diff --git a/data/Test120.hs b/data/Test120.hs new file mode 100644 index 0000000..5bbd0e6 --- /dev/null +++ b/data/Test120.hs @@ -0,0 +1,3 @@ +func = do + stmt + stmt diff --git a/data/Test121.hs b/data/Test121.hs new file mode 100644 index 0000000..aa47dfd --- /dev/null +++ b/data/Test121.hs @@ -0,0 +1,3 @@ +func = do + x <- stmt + stmt x diff --git a/data/Test122.hs b/data/Test122.hs new file mode 100644 index 0000000..589d354 --- /dev/null +++ b/data/Test122.hs @@ -0,0 +1,3 @@ +func = do + let x = 13 + stmt x diff --git a/data/Test123.hs b/data/Test123.hs new file mode 100644 index 0000000..6319013 --- /dev/null +++ b/data/Test123.hs @@ -0,0 +1,7 @@ +func = + foooooo + $ [ case + foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo + of + _ -> True + ] diff --git a/data/Test124.hs b/data/Test124.hs new file mode 100644 index 0000000..1164c0f --- /dev/null +++ b/data/Test124.hs @@ -0,0 +1,4 @@ +testMethod foo bar baz qux = + let x = undefined foo bar baz qux qux baz bar :: String + -- some comment explaining the in expression + in undefined foo x :: String diff --git a/data/Test125.hs b/data/Test125.hs new file mode 100644 index 0000000..e711480 --- /dev/null +++ b/data/Test125.hs @@ -0,0 +1,4 @@ +testMethod foo bar baz qux = + let x = undefined :: String + -- some comment explaining the in expression + in undefined :: String diff --git a/data/Test126.hs b/data/Test126.hs new file mode 100644 index 0000000..e0c379a --- /dev/null +++ b/data/Test126.hs @@ -0,0 +1,3 @@ +testMethod foo bar baz qux = + -- some comment explaining the in expression + let x = undefined :: String in undefined :: String diff --git a/data/Test127.hs b/data/Test127.hs new file mode 100644 index 0000000..e446394 --- /dev/null +++ b/data/Test127.hs @@ -0,0 +1,6 @@ +foo foo bar baz qux = + let a = 1 + b = 2 + c = 3 + -- some comment explaining the in expression + in undefined :: String diff --git a/data/Test128.hs b/data/Test128.hs new file mode 100644 index 0000000..8e3a783 --- /dev/null +++ b/data/Test128.hs @@ -0,0 +1,6 @@ +func = + foo + $ [ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + , bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + ] + ++ [ccccccccccccccccccccccccccccccccccccccccccccccccccccccccc] diff --git a/data/Test129.hs b/data/Test129.hs new file mode 100644 index 0000000..6ca9a1f --- /dev/null +++ b/data/Test129.hs @@ -0,0 +1 @@ +module Main where diff --git a/data/Test13.hs b/data/Test13.hs new file mode 100644 index 0000000..68e8e9e --- /dev/null +++ b/data/Test13.hs @@ -0,0 +1,5 @@ +func + :: ( ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) + ) diff --git a/data/Test130.hs b/data/Test130.hs new file mode 100644 index 0000000..43a1fee --- /dev/null +++ b/data/Test130.hs @@ -0,0 +1 @@ +module Main () where diff --git a/data/Test131.hs b/data/Test131.hs new file mode 100644 index 0000000..0fdcb21 --- /dev/null +++ b/data/Test131.hs @@ -0,0 +1 @@ +module Main (main) where diff --git a/data/Test132.hs b/data/Test132.hs new file mode 100644 index 0000000..1998fe9 --- /dev/null +++ b/data/Test132.hs @@ -0,0 +1 @@ +module Main (main, test1, test2) where diff --git a/data/Test133.hs b/data/Test133.hs new file mode 100644 index 0000000..20fd443 --- /dev/null +++ b/data/Test133.hs @@ -0,0 +1,12 @@ +module Main + ( main + , test1 + , test2 + , test3 + , test4 + , test5 + , test6 + , test7 + , test8 + , test9 + ) where diff --git a/data/Test134.hs b/data/Test134.hs new file mode 100644 index 0000000..20ea610 --- /dev/null +++ b/data/Test134.hs @@ -0,0 +1,12 @@ +module Main + ( main + -- main + , test1 + , test2 + -- Test 3 + , test3 + , test4 + -- Test 5 + , test5 + -- Test 6 + ) where diff --git a/data/Test135.hs b/data/Test135.hs new file mode 100644 index 0000000..6d7b8eb --- /dev/null +++ b/data/Test135.hs @@ -0,0 +1 @@ +module Main (Test(..)) where diff --git a/data/Test136.hs b/data/Test136.hs new file mode 100644 index 0000000..e06cbfc --- /dev/null +++ b/data/Test136.hs @@ -0,0 +1 @@ +module Main (module Main) where diff --git a/data/Test137.hs b/data/Test137.hs new file mode 100644 index 0000000..5f1af50 --- /dev/null +++ b/data/Test137.hs @@ -0,0 +1 @@ +module Main (Test(Test, a, b)) where diff --git a/data/Test138.hs b/data/Test138.hs new file mode 100644 index 0000000..b436099 --- /dev/null +++ b/data/Test138.hs @@ -0,0 +1,6 @@ +-- comment1 +module Main + ( Test(Test, a, b) + , foo -- comment2 + ) -- comment3 + where diff --git a/data/Test139.hs b/data/Test139.hs new file mode 100644 index 0000000..6fd114e --- /dev/null +++ b/data/Test139.hs @@ -0,0 +1 @@ +module Main (Test()) where diff --git a/data/Test14.hs b/data/Test14.hs new file mode 100644 index 0000000..05b4cb6 --- /dev/null +++ b/data/Test14.hs @@ -0,0 +1 @@ +func :: asd -> Either a b diff --git a/data/Test140.hs b/data/Test140.hs new file mode 100644 index 0000000..6d7a6ef --- /dev/null +++ b/data/Test140.hs @@ -0,0 +1 @@ +-- Intentionally left empty diff --git a/data/Test141.hs b/data/Test141.hs new file mode 100644 index 0000000..a053bb5 --- /dev/null +++ b/data/Test141.hs @@ -0,0 +1 @@ +import Data.List diff --git a/data/Test142.hs b/data/Test142.hs new file mode 100644 index 0000000..1bc9f03 --- /dev/null +++ b/data/Test142.hs @@ -0,0 +1 @@ +import Data.List as L diff --git a/data/Test143.hs b/data/Test143.hs new file mode 100644 index 0000000..691c0c1 --- /dev/null +++ b/data/Test143.hs @@ -0,0 +1 @@ +import qualified Data.List diff --git a/data/Test144.hs b/data/Test144.hs new file mode 100644 index 0000000..b64f22f --- /dev/null +++ b/data/Test144.hs @@ -0,0 +1 @@ +import qualified Data.List as L diff --git a/data/Test145.hs b/data/Test145.hs new file mode 100644 index 0000000..020afa7 --- /dev/null +++ b/data/Test145.hs @@ -0,0 +1 @@ +import safe Data.List as L diff --git a/data/Test146.hs b/data/Test146.hs new file mode 100644 index 0000000..cad516e --- /dev/null +++ b/data/Test146.hs @@ -0,0 +1 @@ +import {-# SOURCE #-} Data.List ( ) diff --git a/data/Test147.hs b/data/Test147.hs new file mode 100644 index 0000000..42148e0 --- /dev/null +++ b/data/Test147.hs @@ -0,0 +1 @@ +import safe qualified Data.List diff --git a/data/Test148.hs b/data/Test148.hs new file mode 100644 index 0000000..dd2c6b9 --- /dev/null +++ b/data/Test148.hs @@ -0,0 +1 @@ +import {-# SOURCE #-} safe qualified Data.List diff --git a/data/Test149.hs b/data/Test149.hs new file mode 100644 index 0000000..650a6ad --- /dev/null +++ b/data/Test149.hs @@ -0,0 +1 @@ +import qualified "base" Data.List diff --git a/data/Test15.hs b/data/Test15.hs new file mode 100644 index 0000000..668dca4 --- /dev/null +++ b/data/Test15.hs @@ -0,0 +1,5 @@ +func + :: asd + -> Either + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd diff --git a/data/Test150.hs b/data/Test150.hs new file mode 100644 index 0000000..0c30830 --- /dev/null +++ b/data/Test150.hs @@ -0,0 +1,3 @@ +import {-# SOURCE #-} safe qualified "base" Data.List as L +import {-# SOURCE #-} safe qualified "base" Data.List ( ) +import {-# SOURCE #-} safe qualified Data.List hiding ( ) diff --git a/data/Test151.hs b/data/Test151.hs new file mode 100644 index 0000000..992b081 --- /dev/null +++ b/data/Test151.hs @@ -0,0 +1 @@ +import qualified Data.List ( ) diff --git a/data/Test152.hs b/data/Test152.hs new file mode 100644 index 0000000..631bb4c --- /dev/null +++ b/data/Test152.hs @@ -0,0 +1 @@ +import Data.List ( nub ) diff --git a/data/Test153.hs b/data/Test153.hs new file mode 100644 index 0000000..537fce6 --- /dev/null +++ b/data/Test153.hs @@ -0,0 +1,4 @@ +import Data.List ( foldl' + , indexElem + , nub + ) diff --git a/data/Test154.hs b/data/Test154.hs new file mode 100644 index 0000000..387f268 --- /dev/null +++ b/data/Test154.hs @@ -0,0 +1,14 @@ +import Test ( Long + , anymore + , fit + , items + , line + , list + , not + , onA + , quite + , single + , that + , will + , with + ) diff --git a/data/Test155.hs b/data/Test155.hs new file mode 100644 index 0000000..6150ff3 --- /dev/null +++ b/data/Test155.hs @@ -0,0 +1,11 @@ +import Test ( (+) + , (:!)(..) + , (:*)((:.), T7, t7) + , (:.) + , T + , T2() + , T3(..) + , T4(T4) + , T5(T5, t5) + , T6((<|>)) + ) diff --git a/data/Test156.hs b/data/Test156.hs new file mode 100644 index 0000000..9eb3db5 --- /dev/null +++ b/data/Test156.hs @@ -0,0 +1,3 @@ +import Test hiding ( ) +import Test as T + hiding ( ) diff --git a/data/Test157.hs b/data/Test157.hs new file mode 100644 index 0000000..f78c007 --- /dev/null +++ b/data/Test157.hs @@ -0,0 +1,13 @@ +import Prelude as X + hiding ( head + , init + , last + , maximum + , minimum + , pred + , read + , readFile + , succ + , tail + , undefined + ) diff --git a/data/Test158.hs b/data/Test158.hs new file mode 100644 index 0000000..0fb60c8 --- /dev/null +++ b/data/Test158.hs @@ -0,0 +1,3 @@ +import TestJustAbitToLongModuleNameLikeThisOneIs + ( ) +import TestJustShortEnoughModuleNameLikeThisOne ( ) diff --git a/data/Test159.hs b/data/Test159.hs new file mode 100644 index 0000000..886dfdc --- /dev/null +++ b/data/Test159.hs @@ -0,0 +1,3 @@ +import TestJustAbitToLongModuleNameLikeThisOneI + as T +import TestJustShortEnoughModuleNameLikeThisOn as T diff --git a/data/Test16.hs b/data/Test16.hs new file mode 100644 index 0000000..a91f667 --- /dev/null +++ b/data/Test16.hs @@ -0,0 +1,6 @@ +func + :: asd + -> Trither + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd diff --git a/data/Test160.hs b/data/Test160.hs new file mode 100644 index 0000000..eff7fd4 --- /dev/null +++ b/data/Test160.hs @@ -0,0 +1,3 @@ +import TestJustAbitToLongModuleNameLikeTh + hiding ( ) +import TestJustShortEnoughModuleNameLike hiding ( ) diff --git a/data/Test161.hs b/data/Test161.hs new file mode 100644 index 0000000..14bd638 --- /dev/null +++ b/data/Test161.hs @@ -0,0 +1,10 @@ +import MoreThanSufficientlyLongModuleNameWithSome + ( compact + , fit + , inA + , items + , layout + , not + , that + , will + ) diff --git a/data/Test162.hs b/data/Test162.hs new file mode 100644 index 0000000..f09b604 --- /dev/null +++ b/data/Test162.hs @@ -0,0 +1,11 @@ +import TestJustAbitToLongModuleNameLikeTh + hiding ( abc + , def + , ghci + , jklm + ) +import TestJustShortEnoughModuleNameLike hiding ( abc + , def + , ghci + , jklm + ) diff --git a/data/Test163.hs b/data/Test163.hs new file mode 100644 index 0000000..c71aaba --- /dev/null +++ b/data/Test163.hs @@ -0,0 +1,9 @@ +import {-# SOURCE #-} safe qualified "qualifier" A hiding ( ) +import {-# SOURCE #-} safe qualified "qualifiers" A + hiding ( ) +import {-# SOURCE #-} safe qualified "qualifiers" AlsoAf as T +import {-# SOURCE #-} safe qualified "qualifiers" AlsoAff ( ) +import {-# SOURCE #-} safe qualified "qualifiers" AlsoAff + as T +import {-# SOURCE #-} safe qualified "qualifiers" AlsoAffe + ( ) diff --git a/data/Test164.hs b/data/Test164.hs new file mode 100644 index 0000000..26469d9 --- /dev/null +++ b/data/Test164.hs @@ -0,0 +1,7 @@ +-- Test +import Data.List ( nub ) -- Test +{- Test -} +import qualified Data.List as L + ( foldl' ) {- Test -} +-- Test +import Test ( test ) diff --git a/data/Test165.hs b/data/Test165.hs new file mode 100644 index 0000000..af0b6ab --- /dev/null +++ b/data/Test165.hs @@ -0,0 +1,4 @@ +import Test ( abc + , def + -- comment + ) diff --git a/data/Test166.hs b/data/Test166.hs new file mode 100644 index 0000000..3f0a3ea --- /dev/null +++ b/data/Test166.hs @@ -0,0 +1,3 @@ +import Test ( abc + -- comment + ) diff --git a/data/Test167.hs b/data/Test167.hs new file mode 100644 index 0000000..fb8c357 --- /dev/null +++ b/data/Test167.hs @@ -0,0 +1,8 @@ +import Test ( abc + -- comment + , def + , ghi + {- comment -} + , jkl + -- comment + ) diff --git a/data/Test168.hs b/data/Test168.hs new file mode 100644 index 0000000..40ca190 --- /dev/null +++ b/data/Test168.hs @@ -0,0 +1,2 @@ +import Test ( -- comment + ) diff --git a/data/Test169.hs b/data/Test169.hs new file mode 100644 index 0000000..12a8008 --- /dev/null +++ b/data/Test169.hs @@ -0,0 +1,8 @@ +import Test ( longbindingNameThatoverflowsColum + ) +import Test ( Long + ( List + , Of + , Things + ) + ) diff --git a/data/Test17.hs b/data/Test17.hs new file mode 100644 index 0000000..a4bf487 --- /dev/null +++ b/data/Test17.hs @@ -0,0 +1,6 @@ +func + :: Trither + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> asd diff --git a/data/Test170.hs b/data/Test170.hs new file mode 100644 index 0000000..01d0881 --- /dev/null +++ b/data/Test170.hs @@ -0,0 +1,18 @@ +import Test ( Thing + ( -- Comments + ) + ) +import Test ( Thing + ( Item + -- and Comment + ) + ) +import Test ( Thing + ( With + -- Comments + , and + -- also + , items + -- ! + ) + ) diff --git a/data/Test171.hs b/data/Test171.hs new file mode 100644 index 0000000..2716a8d --- /dev/null +++ b/data/Test171.hs @@ -0,0 +1,2 @@ +import VeryLongModuleNameThatCouldEvenCauseAnEmptyBindingListToExpandIntoMultipleLine + ( ) diff --git a/data/Test172.hs b/data/Test172.hs new file mode 100644 index 0000000..190cdb1 --- /dev/null +++ b/data/Test172.hs @@ -0,0 +1,26 @@ +{-# LANGUAGE BangPatterns #-} +{- + - Test module + -} +module Test + ( test1 + -- ^ test + , test2 + -- | test + , test3 + , test4 + , test5 + , test6 + , test7 + , test8 + , test9 + , test10 + -- Test 10 + ) where +-- Test +import Data.List ( nub ) -- Test +{- Test -} +import qualified Data.List as L + ( foldl' ) {- Test -} +-- Test +import Test ( test ) diff --git a/data/Test173.hs b/data/Test173.hs new file mode 100644 index 0000000..ca49c29 --- /dev/null +++ b/data/Test173.hs @@ -0,0 +1,2 @@ +import Aaa +import Baa diff --git a/data/Test174.hs b/data/Test174.hs new file mode 100644 index 0000000..cb7a8f3 --- /dev/null +++ b/data/Test174.hs @@ -0,0 +1,5 @@ +import Zaa +import Zab + +import Aaa +import Baa diff --git a/data/Test175.hs b/data/Test175.hs new file mode 100644 index 0000000..b25e13a --- /dev/null +++ b/data/Test175.hs @@ -0,0 +1,2 @@ +import Boo +import qualified Zoo diff --git a/data/Test176.hs b/data/Test176.hs new file mode 100644 index 0000000..3ed3401 --- /dev/null +++ b/data/Test176.hs @@ -0,0 +1,3 @@ +import Boo ( a ) + +import Boo ( b ) diff --git a/data/Test177.hs b/data/Test177.hs new file mode 100644 index 0000000..67b690d --- /dev/null +++ b/data/Test177.hs @@ -0,0 +1,2 @@ +import A.B.C +import A.B.D diff --git a/data/Test178.hs b/data/Test178.hs new file mode 100644 index 0000000..f4d347f --- /dev/null +++ b/data/Test178.hs @@ -0,0 +1 @@ +type MySynonym = String diff --git a/data/Test179.hs b/data/Test179.hs new file mode 100644 index 0000000..dff281d --- /dev/null +++ b/data/Test179.hs @@ -0,0 +1 @@ +type MySynonym a = [a] diff --git a/data/Test18.hs b/data/Test18.hs new file mode 100644 index 0000000..aed66fd --- /dev/null +++ b/data/Test18.hs @@ -0,0 +1,5 @@ +func + :: Trither + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + (lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd -> asd) diff --git a/data/Test180.hs b/data/Test180.hs new file mode 100644 index 0000000..3f41a1a --- /dev/null +++ b/data/Test180.hs @@ -0,0 +1,3 @@ +-- | Important comment thrown in +type MySynonym b a + = MySynonym a b -> MySynonym a b -> MyParamType a b -> MyParamType a b diff --git a/data/Test181.hs b/data/Test181.hs new file mode 100644 index 0000000..727c443 --- /dev/null +++ b/data/Test181.hs @@ -0,0 +1,7 @@ +type MySynonym3 b a + = MySynonym a b + -> MySynonym a b + -- ^ RandomComment + -> MyParamType a b + -> MyParamType a b + -> MySynonym2 b a diff --git a/data/Test182.hs b/data/Test182.hs new file mode 100644 index 0000000..142a73a --- /dev/null +++ b/data/Test182.hs @@ -0,0 +1,7 @@ +{-# LANGUAGE StarIsType #-} +type MySynonym (a :: * -> *) + = MySynonym a b + -> MySynonym a b + -> MyParamType a b + -> MyParamType a b + -> MySynonym2 b a diff --git a/data/Test183.hs b/data/Test183.hs new file mode 100644 index 0000000..a48b11c --- /dev/null +++ b/data/Test183.hs @@ -0,0 +1 @@ +type MySynonym a = Num a => a -> Int diff --git a/data/Test184.hs b/data/Test184.hs new file mode 100644 index 0000000..7b868ea --- /dev/null +++ b/data/Test184.hs @@ -0,0 +1,5 @@ +type MySynonym a + = Num a + => AReallyLongTypeName + -> AnotherReallyLongTypeName + -> AThirdTypeNameToOverflow diff --git a/data/Test185.hs b/data/Test185.hs new file mode 100644 index 0000000..69107a7 --- /dev/null +++ b/data/Test185.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE RankNTypes #-} +type MySynonym = forall a . [a] diff --git a/data/Test186.hs b/data/Test186.hs new file mode 100644 index 0000000..ed9c0e4 --- /dev/null +++ b/data/Test186.hs @@ -0,0 +1 @@ +type (:+:) a b = (a, b) diff --git a/data/Test187.hs b/data/Test187.hs new file mode 100644 index 0000000..3b94215 --- /dev/null +++ b/data/Test187.hs @@ -0,0 +1 @@ +type a `MySynonym` b = a -> b diff --git a/data/Test188.hs b/data/Test188.hs new file mode 100644 index 0000000..d7ba4a9 --- /dev/null +++ b/data/Test188.hs @@ -0,0 +1 @@ +type a :+: b = (a, b) diff --git a/data/Test189.hs b/data/Test189.hs new file mode 100644 index 0000000..7228f6d --- /dev/null +++ b/data/Test189.hs @@ -0,0 +1 @@ +type (a `Foo` b) c = (a, b, c) diff --git a/data/Test19.hs b/data/Test19.hs new file mode 100644 index 0000000..92634de --- /dev/null +++ b/data/Test19.hs @@ -0,0 +1,7 @@ +func + :: Trither + asd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) diff --git a/data/Test190.hs b/data/Test190.hs new file mode 100644 index 0000000..b686bf0 --- /dev/null +++ b/data/Test190.hs @@ -0,0 +1,3 @@ +type Foo a -- fancy type comment + = -- strange comment + Int diff --git a/data/Test191.hs b/data/Test191.hs new file mode 100644 index 0000000..b6ce836 --- /dev/null +++ b/data/Test191.hs @@ -0,0 +1 @@ +type (a :+: b) = (a, b) diff --git a/data/Test192.hs b/data/Test192.hs new file mode 100644 index 0000000..f08498a --- /dev/null +++ b/data/Test192.hs @@ -0,0 +1,6 @@ +type Foo + = ( -- t1 + A -- t2 + , -- t3 + B -- t4 + ) -- t5 diff --git a/data/Test193.hs b/data/Test193.hs new file mode 100644 index 0000000..b422133 --- /dev/null +++ b/data/Test193.hs @@ -0,0 +1,2 @@ +instance MyClass Int where + myMethod x = x + 1 diff --git a/data/Test194.hs b/data/Test194.hs new file mode 100644 index 0000000..69107c6 --- /dev/null +++ b/data/Test194.hs @@ -0,0 +1,4 @@ +instance MyClass Int where + myMethod x = + -- insightful comment + x + 1 diff --git a/data/Test195.hs b/data/Test195.hs new file mode 100644 index 0000000..3de314a --- /dev/null +++ b/data/Test195.hs @@ -0,0 +1,3 @@ +instance MyClass Int where + myMethod :: Int -> Int + myMethod x = x + 1 diff --git a/data/Test196.hs b/data/Test196.hs new file mode 100644 index 0000000..63f0d95 --- /dev/null +++ b/data/Test196.hs @@ -0,0 +1,9 @@ +instance MyClass Int where + myMethod + :: Int + -> Int + -> AReallyLongType + -> AReallyLongType + -> AReallyLongType + -> Int + myMethod x = x + 1 diff --git a/data/Test197.hs b/data/Test197.hs new file mode 100644 index 0000000..d7c7d3c --- /dev/null +++ b/data/Test197.hs @@ -0,0 +1,3 @@ +instance MyClass Int where + myMethod x = x + 1 + myMethod2 x = x + 1 diff --git a/data/Test198.hs b/data/Test198.hs new file mode 100644 index 0000000..811e7c4 --- /dev/null +++ b/data/Test198.hs @@ -0,0 +1,11 @@ +instance MyClass Int where + myMethod + :: Int + -> Int + -> AReallyLongType + -> AReallyLongType + -> AReallyLongType + -> Int + myMethod x = x + 1 + myMethod2 :: Int -> Int + myMethod2 x = x + 1 diff --git a/data/Test199.hs b/data/Test199.hs new file mode 100644 index 0000000..9b9cf38 --- /dev/null +++ b/data/Test199.hs @@ -0,0 +1,4 @@ +-- | This instance should be commented on +instance MyClass Int where + -- | This method is also comment-worthy + myMethod x = x + 1 diff --git a/data/Test2.hs b/data/Test2.hs new file mode 100644 index 0000000..b0d734a --- /dev/null +++ b/data/Test2.hs @@ -0,0 +1,3 @@ +func + :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd diff --git a/data/Test20.hs b/data/Test20.hs new file mode 100644 index 0000000..4ad54b6 --- /dev/null +++ b/data/Test20.hs @@ -0,0 +1,7 @@ +func + :: asd + -> ( Trither + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) diff --git a/data/Test200.hs b/data/Test200.hs new file mode 100644 index 0000000..c184597 --- /dev/null +++ b/data/Test200.hs @@ -0,0 +1,4 @@ +instance MyClass Int where + type MyType = Int + myMethod :: MyType -> Int + myMethod x = x + 1 diff --git a/data/Test201.hs b/data/Test201.hs new file mode 100644 index 0000000..1dcbe3a --- /dev/null +++ b/data/Test201.hs @@ -0,0 +1,5 @@ +instance MyClass Int where + type MyType = String + myMethod :: MyType -> Int + myMethod x = x + 1 + type MyType = Int diff --git a/data/Test202.hs b/data/Test202.hs new file mode 100644 index 0000000..b2789c2 --- /dev/null +++ b/data/Test202.hs @@ -0,0 +1,8 @@ +instance MyClass Int where + -- | This data is very important + data MyData = IntData + { intData :: String + , intData2 :: Int + } + myMethod :: MyData -> Int + myMethod = intData2 diff --git a/data/Test203.hs b/data/Test203.hs new file mode 100644 index 0000000..04353a6 --- /dev/null +++ b/data/Test203.hs @@ -0,0 +1,11 @@ +instance MyClass Int where + -- | This data is important + data MyData = Test Int Int + myMethod :: MyData -> Int + myMethod = intData2 + -- | This data is also important + data MyData2 = IntData + { intData :: String + -- ^ Interesting field + , intData2 :: Int + } diff --git a/data/Test204.hs b/data/Test204.hs new file mode 100644 index 0000000..7ad4fc6 --- /dev/null +++ b/data/Test204.hs @@ -0,0 +1,6 @@ +{-# LANGUAGE TypeFamilies #-} +module Lib where +instance Foo () where + newtype Bar () = Baz () + deriving (Eq, Ord, Show) + bar = Baz diff --git a/data/Test205.hs b/data/Test205.hs new file mode 100644 index 0000000..a224c18 --- /dev/null +++ b/data/Test205.hs @@ -0,0 +1,4 @@ +instance Foo Int where + newtype Bar Int = BarInt + { unBarInt :: Int + } diff --git a/data/Test206.hs b/data/Test206.hs new file mode 100644 index 0000000..7266b3e --- /dev/null +++ b/data/Test206.hs @@ -0,0 +1,3 @@ +{-# language TypeFamilies #-} +type family F a +type instance F Int = IO Int diff --git a/data/Test207.hs b/data/Test207.hs new file mode 100644 index 0000000..9bb7ba2 --- /dev/null +++ b/data/Test207.hs @@ -0,0 +1,3 @@ +{-# language TypeFamilies #-} +type family F a +type instance F Int = IO Int -- x diff --git a/data/Test208.hs b/data/Test208.hs new file mode 100644 index 0000000..0e3c3f8 --- /dev/null +++ b/data/Test208.hs @@ -0,0 +1,4 @@ +{-# language TypeFamilies #-} +module M where +type family F a +type instance F Int = IO Int diff --git a/data/Test209.hs b/data/Test209.hs new file mode 100644 index 0000000..f103480 --- /dev/null +++ b/data/Test209.hs @@ -0,0 +1,3 @@ +{-# language TypeFamilies #-} +data family F a +newtype instance F Int = N Int diff --git a/data/Test21.hs b/data/Test21.hs new file mode 100644 index 0000000..d27183e --- /dev/null +++ b/data/Test21.hs @@ -0,0 +1,7 @@ +func + :: asd + -> ( Trither + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd diff --git a/data/Test210.hs b/data/Test210.hs new file mode 100644 index 0000000..659bd8a --- /dev/null +++ b/data/Test210.hs @@ -0,0 +1,3 @@ +{-# language TypeFamilies #-} +data family F a +newtype instance F Int = N Int -- x diff --git a/data/Test211.hs b/data/Test211.hs new file mode 100644 index 0000000..9e71377 --- /dev/null +++ b/data/Test211.hs @@ -0,0 +1,4 @@ +{-# language TypeFamilies #-} +module M where +data family F a +newtype instance F Int = N Int diff --git a/data/Test212.hs b/data/Test212.hs new file mode 100644 index 0000000..715990f --- /dev/null +++ b/data/Test212.hs @@ -0,0 +1,3 @@ +{-# language TypeFamilies #-} +data family F a +data instance F Int = D Int diff --git a/data/Test213.hs b/data/Test213.hs new file mode 100644 index 0000000..0194c4c --- /dev/null +++ b/data/Test213.hs @@ -0,0 +1,3 @@ +{-# language TypeFamilies #-} +data family F a +data instance F Int = D Int -- x diff --git a/data/Test214.hs b/data/Test214.hs new file mode 100644 index 0000000..81d27db --- /dev/null +++ b/data/Test214.hs @@ -0,0 +1,4 @@ +{-# language TypeFamilies #-} +module M where +data family F a +data instance F Int = D Int diff --git a/data/Test215.hs b/data/Test215.hs new file mode 100644 index 0000000..feaf541 --- /dev/null +++ b/data/Test215.hs @@ -0,0 +1,5 @@ +{-# language TypeFamilies #-} +class C a where + type family F a +instance C Int where + type F Int = IO Int diff --git a/data/Test216.hs b/data/Test216.hs new file mode 100644 index 0000000..13dcee5 --- /dev/null +++ b/data/Test216.hs @@ -0,0 +1,5 @@ +{-# language TypeFamilies #-} +class C a where + type family F a +instance C Int where + type F Int = IO Int -- x diff --git a/data/Test217.hs b/data/Test217.hs new file mode 100644 index 0000000..c14956e --- /dev/null +++ b/data/Test217.hs @@ -0,0 +1,6 @@ +{-# language TypeFamilies #-} +module M where +class C a where + type family F a +instance C Int where + type F Int = IO Int diff --git a/data/Test218.hs b/data/Test218.hs new file mode 100644 index 0000000..824b034 --- /dev/null +++ b/data/Test218.hs @@ -0,0 +1,5 @@ +{-# language TypeFamilies #-} +class C a where + data family F a +instance C Int where + newtype F Int = N Int diff --git a/data/Test219.hs b/data/Test219.hs new file mode 100644 index 0000000..1df22e4 --- /dev/null +++ b/data/Test219.hs @@ -0,0 +1,5 @@ +{-# language TypeFamilies #-} +class C a where + data family F a +instance C Int where + newtype F Int = N Int -- x diff --git a/data/Test22.hs b/data/Test22.hs new file mode 100644 index 0000000..35b8134 --- /dev/null +++ b/data/Test22.hs @@ -0,0 +1,7 @@ +func + :: ( Trither + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> asd diff --git a/data/Test220.hs b/data/Test220.hs new file mode 100644 index 0000000..6f6dc67 --- /dev/null +++ b/data/Test220.hs @@ -0,0 +1,6 @@ +{-# language TypeFamilies #-} +module M where +class C a where + data family F a +instance C Int where + newtype F Int = N Int diff --git a/data/Test221.hs b/data/Test221.hs new file mode 100644 index 0000000..1ec34f4 --- /dev/null +++ b/data/Test221.hs @@ -0,0 +1,5 @@ +{-# language TypeFamilies #-} +class C a where + data family F a +instance C Int where + data F Int = D Int diff --git a/data/Test222.hs b/data/Test222.hs new file mode 100644 index 0000000..84a1f5f --- /dev/null +++ b/data/Test222.hs @@ -0,0 +1,5 @@ +{-# language TypeFamilies #-} +class C a where + data family F a +instance C Int where + data F Int = D Int -- x diff --git a/data/Test223.hs b/data/Test223.hs new file mode 100644 index 0000000..677369b --- /dev/null +++ b/data/Test223.hs @@ -0,0 +1,6 @@ +{-# language TypeFamilies #-} +module M where +class C a where + data family F a +instance C Int where + data F Int = D Int diff --git a/data/Test224.hs b/data/Test224.hs new file mode 100644 index 0000000..8798205 --- /dev/null +++ b/data/Test224.hs @@ -0,0 +1,3 @@ +module Main where +import Prelude +firstDecl = True diff --git a/data/Test225.hs b/data/Test225.hs new file mode 100644 index 0000000..e5861f4 --- /dev/null +++ b/data/Test225.hs @@ -0,0 +1,10 @@ +func = do + -- complex first step + aaa + -- complex second step + bbb + where + helper :: Helper + helper = helpful + other :: Other + other = True diff --git a/data/Test226.hs b/data/Test226.hs new file mode 100644 index 0000000..d999644 --- /dev/null +++ b/data/Test226.hs @@ -0,0 +1 @@ +type instance MyFam Bool = String diff --git a/data/Test227.hs b/data/Test227.hs new file mode 100644 index 0000000..a67980b --- /dev/null +++ b/data/Test227.hs @@ -0,0 +1 @@ +type instance MyFam (Maybe a) = a -> Bool diff --git a/data/Test228.hs b/data/Test228.hs new file mode 100644 index 0000000..21a82dc --- /dev/null +++ b/data/Test228.hs @@ -0,0 +1,4 @@ +type instance MyFam ALongishType + = AMuchLongerTypeThanThat + -> AnEvenLongerTypeThanTheLastOne + -> ShouldDefinitelyOverflow diff --git a/data/Test229.hs b/data/Test229.hs new file mode 100644 index 0000000..9299647 --- /dev/null +++ b/data/Test229.hs @@ -0,0 +1,3 @@ +-- | A happy family +type instance MyFam Bool -- This is an odd one + = AnotherType -- Here's another diff --git a/data/Test23.hs b/data/Test23.hs new file mode 100644 index 0000000..45b6ecc --- /dev/null +++ b/data/Test23.hs @@ -0,0 +1 @@ +func :: [a -> b] diff --git a/data/Test230.hs b/data/Test230.hs new file mode 100644 index 0000000..c7daa9c --- /dev/null +++ b/data/Test230.hs @@ -0,0 +1,4 @@ +{-# LANGUAGE MultiWayIf #-} +func = if + | cond1 -> loooooooooooooooooooooooooooooong expr1 + | cond2 -> loooooooooooooooooooooooooooooong expr2 diff --git a/data/Test231.hs b/data/Test231.hs new file mode 100644 index 0000000..4580c39 --- /dev/null +++ b/data/Test231.hs @@ -0,0 +1,6 @@ +{-# LANGUAGE MultiWayIf #-} +func = do + foo + bar $ if + | cond1 -> loooooooooooooooooooooooooooooong expr1 + | cond2 -> loooooooooooooooooooooooooooooong expr2 diff --git a/data/Test232.hs b/data/Test232.hs new file mode 100644 index 0000000..a1e09b1 --- /dev/null +++ b/data/Test232.hs @@ -0,0 +1,4 @@ +{-# LANGUAGE LambdaCase #-} +func = \case + FooBar -> x + Baz -> y diff --git a/data/Test233.hs b/data/Test233.hs new file mode 100644 index 0000000..c4b3a93 --- /dev/null +++ b/data/Test233.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE ImplicitParams #-} +func :: (?asd::Int) -> () diff --git a/data/Test234.hs b/data/Test234.hs new file mode 100644 index 0000000..55305cf --- /dev/null +++ b/data/Test234.hs @@ -0,0 +1,7 @@ +{-# LANGUAGE ImplicitParams #-} +func + :: ( ?asd + :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) + -> () diff --git a/data/Test235.hs b/data/Test235.hs new file mode 100644 index 0000000..41406a4 --- /dev/null +++ b/data/Test235.hs @@ -0,0 +1,5 @@ +{-# LANGUAGE RecursiveDo #-} +foo = do + rec a <- f b + b <- g a + return (a, b) diff --git a/data/Test236.hs b/data/Test236.hs new file mode 100644 index 0000000..ebf2076 --- /dev/null +++ b/data/Test236.hs @@ -0,0 +1,6 @@ +{-# LANGUAGE RecursiveDo #-} +foo = do + rec -- comment + a <- f b + b <- g a + return (a, b) diff --git a/data/Test237.hs b/data/Test237.hs new file mode 100644 index 0000000..78ecef2 --- /dev/null +++ b/data/Test237.hs @@ -0,0 +1,3 @@ +{-# LANGUAGE ExplicitNamespaces #-} +{-# LANGUAGE PatternSynonyms #-} +module Test (type (++), (++), pattern Foo) where diff --git a/data/Test238.hs b/data/Test238.hs new file mode 100644 index 0000000..61444fa --- /dev/null +++ b/data/Test238.hs @@ -0,0 +1,7 @@ +{-# LANGUAGE ExplicitNamespaces #-} +{-# LANGUAGE PatternSynonyms #-} +import Test ( type (++) + , (++) + , pattern (:.) + , pattern Foo + ) diff --git a/data/Test239.hs b/data/Test239.hs new file mode 100644 index 0000000..f535c48 --- /dev/null +++ b/data/Test239.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE PatternSynonyms #-} +pattern J x = Just x diff --git a/data/Test24.hs b/data/Test24.hs new file mode 100644 index 0000000..272c2b4 --- /dev/null +++ b/data/Test24.hs @@ -0,0 +1,4 @@ +func + :: [ lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ] diff --git a/data/Test240.hs b/data/Test240.hs new file mode 100644 index 0000000..82251e5 --- /dev/null +++ b/data/Test240.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE PatternSynonyms #-} +pattern F x <- (x, _) diff --git a/data/Test241.hs b/data/Test241.hs new file mode 100644 index 0000000..e00b3ca --- /dev/null +++ b/data/Test241.hs @@ -0,0 +1,3 @@ +{-# LANGUAGE PatternSynonyms #-} +pattern HeadC x <- x : xs where + HeadC x = [x] diff --git a/data/Test242.hs b/data/Test242.hs new file mode 100644 index 0000000..f6587d6 --- /dev/null +++ b/data/Test242.hs @@ -0,0 +1,3 @@ +{-# LANGUAGE PatternSynonyms #-} +pattern Head2 x y <- x : y : xs where + Head2 x y = [x, y] diff --git a/data/Test243.hs b/data/Test243.hs new file mode 100644 index 0000000..4ffaf11 --- /dev/null +++ b/data/Test243.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE PatternSynonyms #-} +pattern x :> y = [x, y] diff --git a/data/Test244.hs b/data/Test244.hs new file mode 100644 index 0000000..d61801f --- /dev/null +++ b/data/Test244.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE PatternSynonyms #-} +pattern MyData { a, b, c } = [a, b, c] diff --git a/data/Test245.hs b/data/Test245.hs new file mode 100644 index 0000000..78869f8 --- /dev/null +++ b/data/Test245.hs @@ -0,0 +1,3 @@ +{-# LANGUAGE PatternSynonyms #-} +pattern myLongLeftVariableName `MyLongInfixPatternMatcher` myLongRightVariableName = + [myLongLeftVariableName, myLongRightVariableName] diff --git a/data/Test246.hs b/data/Test246.hs new file mode 100644 index 0000000..811bb22 --- /dev/null +++ b/data/Test246.hs @@ -0,0 +1,4 @@ +{-# LANGUAGE PatternSynonyms #-} +pattern myLeftVariableName `MyInfixPatternMatcher` myRightVariableName <- + [myLongLeftVariableName, myLongRightVariableName] where + MyInfixPatternMatcher x y = [x, x, y] diff --git a/data/Test247.hs b/data/Test247.hs new file mode 100644 index 0000000..cd38165 --- /dev/null +++ b/data/Test247.hs @@ -0,0 +1,3 @@ +{-# LANGUAGE PatternSynonyms #-} +pattern J :: a -> Maybe a +pattern J x = Just x diff --git a/data/Test248.hs b/data/Test248.hs new file mode 100644 index 0000000..823e1f4 --- /dev/null +++ b/data/Test248.hs @@ -0,0 +1,6 @@ +{-# LANGUAGE PatternSynonyms #-} +{-# LANGUAGE ViewPatterns #-} +pattern Signed x <- (asSigned -> x) where + Signed (Neg x) = -x + Signed Zero = 0 + Signed (Pos x) = x diff --git a/data/Test249.hs b/data/Test249.hs new file mode 100644 index 0000000..9b69561 --- /dev/null +++ b/data/Test249.hs @@ -0,0 +1,7 @@ +{-# LANGUAGE PatternSynonyms #-} +{-# LANGUAGE ViewPatterns #-} +pattern Signed xxxxxxxxxxxxxxxxxxxxxxxx <- + (asSigned -> xxxxxxxxxxxxxxxxxxxxxxxx) where + Signed (Neg x) = -x + Signed Zero = 0 + Signed (Pos x) = x diff --git a/data/Test25.hs b/data/Test25.hs new file mode 100644 index 0000000..142958b --- /dev/null +++ b/data/Test25.hs @@ -0,0 +1,5 @@ +func + :: [ ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) + ] diff --git a/data/Test250.hs b/data/Test250.hs new file mode 100644 index 0000000..8493743 --- /dev/null +++ b/data/Test250.hs @@ -0,0 +1,6 @@ +{-# LANGUAGE PatternSynonyms #-} +{-# LANGUAGE ViewPatterns #-} +pattern Signed x <- (asSigned -> x) where + Signed (Neg x) = -x -- negative comment + Signed Zero = 0 -- zero comment + Signed (Pos x) = x -- positive comment diff --git a/data/Test251.hs b/data/Test251.hs new file mode 100644 index 0000000..3ea9b99 --- /dev/null +++ b/data/Test251.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE PatternSynonyms #-} +pattern J, K :: a -> Maybe a diff --git a/data/Test252.hs b/data/Test252.hs new file mode 100644 index 0000000..54eb4c5 --- /dev/null +++ b/data/Test252.hs @@ -0,0 +1,7 @@ +{-# LANGUAGE PatternSynonyms #-} +pattern LongMatcher + :: longlongtypevar + -> longlongtypevar + -> longlongtypevar + -> Maybe [longlongtypevar] +pattern LongMatcher x y z = Just [x, y, z] diff --git a/data/Test253.hs b/data/Test253.hs new file mode 100644 index 0000000..25fc4ce --- /dev/null +++ b/data/Test253.hs @@ -0,0 +1,4 @@ +{-# LANGUAGE UnboxedTuples #-} +spanKey :: (# Int, Int #) -> (# Int, Int #) +spanKey = case foo of + (# bar, baz #) -> (# baz, bar #) diff --git a/data/Test254.hs b/data/Test254.hs new file mode 100644 index 0000000..3ceb254 --- /dev/null +++ b/data/Test254.hs @@ -0,0 +1,4 @@ +{-# LANGUAGE MagicHash, UnboxedTuples #-} +spanKey :: (# Int#, Int# #) -> (# Int#, Int# #) +spanKey = case foo of + (# bar#, baz# #) -> (# baz# +# bar#, bar# #) diff --git a/data/Test255.hs b/data/Test255.hs new file mode 100644 index 0000000..a644156 --- /dev/null +++ b/data/Test255.hs @@ -0,0 +1,5 @@ +{-# LANGUAGE QuasiQuotes #-} +func = [blub| + asd + qwe + |] diff --git a/data/Test256.hs b/data/Test256.hs new file mode 100644 index 0000000..1624200 --- /dev/null +++ b/data/Test256.hs @@ -0,0 +1,4 @@ +{-# LANGUAGE QuasiQuotes #-} +func = [blub| + asd + qwe|] diff --git a/data/Test257.hs b/data/Test257.hs new file mode 100644 index 0000000..20f877f --- /dev/null +++ b/data/Test257.hs @@ -0,0 +1,6 @@ +{-# LANGUAGE QuasiQuotes #-} +func = do + let body = [json| + hello + |] + pure True diff --git a/data/Test258.hs b/data/Test258.hs new file mode 100644 index 0000000..29039ca --- /dev/null +++ b/data/Test258.hs @@ -0,0 +1,9 @@ +-- brittany { lconfig_allowHangingQuasiQuotes: False } +{-# LANGUAGE QuasiQuotes #-} +func = do + let + body = + [json| + hello + |] + pure True diff --git a/data/Test259.hs b/data/Test259.hs new file mode 100644 index 0000000..2407ef8 --- /dev/null +++ b/data/Test259.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE OverloadedLabels #-} +foo = #bar diff --git a/data/Test26.hs b/data/Test26.hs new file mode 100644 index 0000000..cdc1e7e --- /dev/null +++ b/data/Test26.hs @@ -0,0 +1 @@ +func :: (a, b, c) diff --git a/data/Test260.hs b/data/Test260.hs new file mode 100644 index 0000000..d7cc187 --- /dev/null +++ b/data/Test260.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE OverloadedLabels #-} +foo = #bar . #baz $ fmap #foo xs diff --git a/data/Test261.hs b/data/Test261.hs new file mode 100644 index 0000000..f56379d --- /dev/null +++ b/data/Test261.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE ImplicitParams #-} +foo = ?bar diff --git a/data/Test262.hs b/data/Test262.hs new file mode 100644 index 0000000..0ed092e --- /dev/null +++ b/data/Test262.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE ImplicitParams #-} +foo = let ?bar = Foo in value diff --git a/data/Test263.hs b/data/Test263.hs new file mode 100644 index 0000000..a85a777 --- /dev/null +++ b/data/Test263.hs @@ -0,0 +1,3 @@ +{-# LANGUAGE ImplicitParams #-} +foo :: (?bar::Bool) => () +foo = () diff --git a/data/Test264.hs b/data/Test264.hs new file mode 100644 index 0000000..d3ebee3 --- /dev/null +++ b/data/Test264.hs @@ -0,0 +1,4 @@ +func = do + abc <- foo +--abc +return () diff --git a/data/Test265.hs b/data/Test265.hs new file mode 100644 index 0000000..c965c63 --- /dev/null +++ b/data/Test265.hs @@ -0,0 +1 @@ +func = (()) diff --git a/data/Test266.hs b/data/Test266.hs new file mode 100644 index 0000000..b6a3539 --- /dev/null +++ b/data/Test266.hs @@ -0,0 +1,4 @@ +func = do + let foo True = True + foo _ = False + return () diff --git a/data/Test267.hs b/data/Test267.hs new file mode 100644 index 0000000..65d2172 --- /dev/null +++ b/data/Test267.hs @@ -0,0 +1,3 @@ +func = do + s <- mGet + mSet $ s { _lstate_indent = _lstate_indent state } diff --git a/data/Test268.hs b/data/Test268.hs new file mode 100644 index 0000000..6d369d8 --- /dev/null +++ b/data/Test268.hs @@ -0,0 +1,5 @@ +func = do + s <- mGet + mSet $ s { _lstate_indent = _lstate_indent state + , _lstate_foo = _lstate_foo state + } diff --git a/data/Test269.hs b/data/Test269.hs new file mode 100644 index 0000000..4741485 --- /dev/null +++ b/data/Test269.hs @@ -0,0 +1,6 @@ +func = do + s <- mGet + mSet $ s + { _lstate_indent = _lstate_indent lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + , _lstate_foo = _lstate_foo lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + } diff --git a/data/Test27.hs b/data/Test27.hs new file mode 100644 index 0000000..774cc9d --- /dev/null +++ b/data/Test27.hs @@ -0,0 +1 @@ +func :: ((a, b, c), (a, b, c), (a, b, c)) diff --git a/data/Test270.hs b/data/Test270.hs new file mode 100644 index 0000000..cd17597 --- /dev/null +++ b/data/Test270.hs @@ -0,0 +1 @@ +func = Foo { _lstate_indent = _lstate_indent state } diff --git a/data/Test271.hs b/data/Test271.hs new file mode 100644 index 0000000..112af5e --- /dev/null +++ b/data/Test271.hs @@ -0,0 +1,4 @@ +func = Foo + { _lstate_indent = _lstate_indent lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + , _lstate_fooo = _lstate_foo lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + } diff --git a/data/Test272.hs b/data/Test272.hs new file mode 100644 index 0000000..3d0a415 --- /dev/null +++ b/data/Test272.hs @@ -0,0 +1,4 @@ +func = do + Foo { _lstate_indent = _lstate_indent lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + , _lstate_foo = _lstate_foo lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + } diff --git a/data/Test273.hs b/data/Test273.hs new file mode 100644 index 0000000..172b344 --- /dev/null +++ b/data/Test273.hs @@ -0,0 +1,4 @@ +func = do +-- abc + -- def + return () diff --git a/data/Test274.hs b/data/Test274.hs new file mode 100644 index 0000000..13d9924 --- /dev/null +++ b/data/Test274.hs @@ -0,0 +1,6 @@ +func = do + do + return () + -- abc + -- def + return () diff --git a/data/Test275.hs b/data/Test275.hs new file mode 100644 index 0000000..45fbb05 --- /dev/null +++ b/data/Test275.hs @@ -0,0 +1,6 @@ +func + :: Int -- basic indentation amount + -> Int -- currently used width in current line (after indent) + -- used to accurately calc placing of the current-line + -> LayoutDesc + -> Int diff --git a/data/Test276.hs b/data/Test276.hs new file mode 100644 index 0000000..1a55b76 --- /dev/null +++ b/data/Test276.hs @@ -0,0 +1,7 @@ +func = + ( lkjadljasldjalskdjaldjalsdjkalsdjlaksdjlasjdlajsaldskj + $ abc + $ def + $ ghi + $ jkl + ) diff --git a/data/Test277.hs b/data/Test277.hs new file mode 100644 index 0000000..954c81d --- /dev/null +++ b/data/Test277.hs @@ -0,0 +1,2 @@ +buildG bounds0 edges0 = accumArray (flip (:)) [] bounds0 (map reassoc edges0) + where reassoc (v, e, w) = (v, (e, w)) diff --git a/data/Test278.hs b/data/Test278.hs new file mode 100644 index 0000000..012222d --- /dev/null +++ b/data/Test278.hs @@ -0,0 +1,4 @@ +downloadRepoPackage = case repo of + RepoLocal {..} -> return () + RepoLocal { abc } -> return () + RepoLocal{} -> return () diff --git a/data/Test279.hs b/data/Test279.hs new file mode 100644 index 0000000..2a53d37 --- /dev/null +++ b/data/Test279.hs @@ -0,0 +1,6 @@ +func = do + let (primaryPkg, otherPkgs) = selectPrimaryLocalPackage pwd pkgs' + (bproblems, x) = resolveBuildTargets primaryPkg otherPkgs utargets'' + -- default local dir target if there's no given target + utargets'' = "foo" + return () diff --git a/data/Test28.hs b/data/Test28.hs new file mode 100644 index 0000000..06bd705 --- /dev/null +++ b/data/Test28.hs @@ -0,0 +1,5 @@ +func + :: ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) diff --git a/data/Test280.hs b/data/Test280.hs new file mode 100644 index 0000000..0ea93d9 --- /dev/null +++ b/data/Test280.hs @@ -0,0 +1,5 @@ +func = + [ (thing, take 10 alts) --TODO: select best ones + | (thing, _got, alts@(_ : _)) <- nosuchFooThing + , gast <- award + ] diff --git a/data/Test281.hs b/data/Test281.hs new file mode 100644 index 0000000..6366436 --- /dev/null +++ b/data/Test281.hs @@ -0,0 +1,5 @@ +func = if x + then if y -- y is important + then foo + else bar + else Nothing diff --git a/data/Test282.hs b/data/Test282.hs new file mode 100644 index 0000000..c6cba2d --- /dev/null +++ b/data/Test282.hs @@ -0,0 +1,7 @@ +wrapPatPrepend pat prepElem = do + patDocs <- layoutPat pat + case Seq.viewl patDocs of + Seq.EmptyL -> return $ Seq.empty + x1 Seq.:< xR -> do + x1' <- docSeq [prepElem, return x1] + return $ x1' Seq.<| xR diff --git a/data/Test283.hs b/data/Test283.hs new file mode 100644 index 0000000..21044e6 --- /dev/null +++ b/data/Test283.hs @@ -0,0 +1,6 @@ +layoutWriteNewlineBlock + :: ( MonadMultiWriter Text.Builder.Builder m + , MonadMultiState LayoutState m + , MonadMultiWriter (Seq String) m + ) + => m () diff --git a/data/Test284.hs b/data/Test284.hs new file mode 100644 index 0000000..f6a21c7 --- /dev/null +++ b/data/Test284.hs @@ -0,0 +1,24 @@ +{-# LANGUAGE MultiWayIf #-} +readMergePersConfig path shouldCreate conf = do + exists <- liftIO $ System.Directory.doesFileExist path + if + | exists -> do + contents <- liftIO $ ByteString.readFile path -- no lazy IO, tyvm. + fileConf <- case Data.Yaml.decodeEither contents of + Left e -> do + liftIO + $ putStrErrLn + $ "error reading in brittany config from " + ++ path + ++ ":" + liftIO $ putStrErrLn e + mzero + Right x -> return x + return $ fileConf Semigroup.<> conf + | shouldCreate -> do + liftIO $ ByteString.writeFile path $ Data.Yaml.encode $ cMap + (Option . Just . runIdentity) + staticDefaultConfig + return $ conf + | otherwise -> do + return conf diff --git a/data/Test285.hs b/data/Test285.hs new file mode 100644 index 0000000..388281d --- /dev/null +++ b/data/Test285.hs @@ -0,0 +1,12 @@ +func = BuildReport + where + convertInstallOutcome = case result of + Left BR.PlanningFailed -> PlanningFailed + Left (BR.DependentFailed p) -> DependencyFailed p + Left (BR.DownloadFailed _) -> DownloadFailed + Left (BR.UnpackFailed _) -> UnpackFailed + Left (BR.ConfigureFailed _) -> ConfigureFailed + Left (BR.BuildFailed _) -> BuildFailed + Left (BR.TestsFailed _) -> TestsFailed + Left (BR.InstallFailed _) -> InstallFailed + Right (BR.BuildOk _ _ _ ) -> InstallOk diff --git a/data/Test286.hs b/data/Test286.hs new file mode 100644 index 0000000..388281d --- /dev/null +++ b/data/Test286.hs @@ -0,0 +1,12 @@ +func = BuildReport + where + convertInstallOutcome = case result of + Left BR.PlanningFailed -> PlanningFailed + Left (BR.DependentFailed p) -> DependencyFailed p + Left (BR.DownloadFailed _) -> DownloadFailed + Left (BR.UnpackFailed _) -> UnpackFailed + Left (BR.ConfigureFailed _) -> ConfigureFailed + Left (BR.BuildFailed _) -> BuildFailed + Left (BR.TestsFailed _) -> TestsFailed + Left (BR.InstallFailed _) -> InstallFailed + Right (BR.BuildOk _ _ _ ) -> InstallOk diff --git a/data/Test287.hs b/data/Test287.hs new file mode 100644 index 0000000..a50af8b --- /dev/null +++ b/data/Test287.hs @@ -0,0 +1,35 @@ +showPackageDetailedInfo pkginfo = + renderStyle (style { lineLength = 80, ribbonsPerLine = 1 }) + $ char '*' + $+$ something + [ entry "Synopsis" synopsis hideIfNull reflowParagraphs + , entry "Versions available" + sourceVersions + (altText null "[ Not available from server ]") + (dispTopVersions 9 (preferredVersions pkginfo)) + , entry + "Versions installed" + installedVersions + (altText + null + (if hasLib pkginfo then "[ Not installed ]" else "[ Unknown ]") + ) + (dispTopVersions 4 (preferredVersions pkginfo)) + , entry "Homepage" homepage orNotSpecified text + , entry "Bug reports" bugReports orNotSpecified text + , entry "Description" description hideIfNull reflowParagraphs + , entry "Category" category hideIfNull text + , entry "License" license alwaysShow disp + , entry "Author" author hideIfNull reflowLines + , entry "Maintainer" maintainer hideIfNull reflowLines + , entry "Source repo" sourceRepo orNotSpecified text + , entry "Executables" executables hideIfNull (commaSep text) + , entry "Flags" flags hideIfNull (commaSep dispFlag) + , entry "Dependencies" dependencies hideIfNull (commaSep dispExtDep) + , entry "Documentation" haddockHtml showIfInstalled text + , entry "Cached" haveTarball alwaysShow dispYesNo + , if not (hasLib pkginfo) + then empty + else text "Modules:" + $+$ nest 4 (vcat (map disp . sort . modules $ pkginfo)) + ] diff --git a/data/Test288.hs b/data/Test288.hs new file mode 100644 index 0000000..3289dd7 --- /dev/null +++ b/data/Test288.hs @@ -0,0 +1,2 @@ +isValidPosition position | validX && validY = Just position + | otherwise = Nothing diff --git a/data/Test289.hs b/data/Test289.hs new file mode 100644 index 0000000..023032c --- /dev/null +++ b/data/Test289.hs @@ -0,0 +1,6 @@ +foo = Reflex.runSpiderHost $ ReflexHost.hostApp $ do + (inputEvent :: Reflex.Event Reflex.Spider String, inputFire :: String + -> IO Bool ) <- + ReflexHost.newExternalEvent + liftIO . forkIO . forever $ getLine >>= inputFire + ReflexHost.performEvent_ $ fmap (liftIO . putStrLn) inputEvent diff --git a/data/Test29.hs b/data/Test29.hs new file mode 100644 index 0000000..fc19ba1 --- /dev/null +++ b/data/Test29.hs @@ -0,0 +1,6 @@ +func + :: ( ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + , (lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd) + , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) + ) diff --git a/data/Test290.hs b/data/Test290.hs new file mode 100644 index 0000000..689fa70 --- /dev/null +++ b/data/Test290.hs @@ -0,0 +1,2 @@ +foldrDesc f z = unSwitchQueue $ \q -> + switch (Min.foldrDesc (f unTaggedF) z q) (Min.foldrAsc (f unTaggedF) z q) diff --git a/data/Test291.hs b/data/Test291.hs new file mode 100644 index 0000000..68face0 --- /dev/null +++ b/data/Test291.hs @@ -0,0 +1,5 @@ +autocheckCases = + [ ("Never Deadlocks" , representative deadlocksNever) + , ("No Exceptions" , representative exceptionsNever) + , ("Consistent Result", alwaysSame) -- already representative + ] diff --git a/data/Test292.hs b/data/Test292.hs new file mode 100644 index 0000000..cc6ecb2 --- /dev/null +++ b/data/Test292.hs @@ -0,0 +1,7 @@ +autocheckCases = + [ ("Never Deadlocks", representative deadlocksNever) + , ("No Exceptions" , representative exceptionsNever) + , ( "Consistent Result" + , alwaysSame -- already representative + ) + ] diff --git a/data/Test293.hs b/data/Test293.hs new file mode 100644 index 0000000..596f9ea --- /dev/null +++ b/data/Test293.hs @@ -0,0 +1,5 @@ +func = + [ (abc, (1111, 1111)) + , (def, (2, 2)) + , foo -- comment + ] diff --git a/data/Test294.hs b/data/Test294.hs new file mode 100644 index 0000000..927da51 --- /dev/null +++ b/data/Test294.hs @@ -0,0 +1,2 @@ +foo a b = g a b -- fooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo + where g a b = b + b * a diff --git a/data/Test295.hs b/data/Test295.hs new file mode 100644 index 0000000..2b6fc80 --- /dev/null +++ b/data/Test295.hs @@ -0,0 +1 @@ +foo a b = g a b where g a b = b + b * a -- fooooooooooooooooooooooooooooooooooo diff --git a/data/Test296.hs b/data/Test296.hs new file mode 100644 index 0000000..1954213 --- /dev/null +++ b/data/Test296.hs @@ -0,0 +1,5 @@ +func = do + abc <- expr + abcccccccccccccccccc <- expr + abcccccccccccccccccccccccccccccccccccccccccc <- expr + abccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc <- expr diff --git a/data/Test297.hs b/data/Test297.hs new file mode 100644 index 0000000..198bd69 --- /dev/null +++ b/data/Test297.hs @@ -0,0 +1,3 @@ +func (MyLongFoo abc def) = 1 +func (Bar a d ) = 2 +func _ = 3 diff --git a/data/Test298.hs b/data/Test298.hs new file mode 100644 index 0000000..17013e2 --- /dev/null +++ b/data/Test298.hs @@ -0,0 +1,14 @@ +parserCompactLocation = + [ try + $ [ ParseRelAbs (Text.Read.read digits) _ _ + | digits <- many1 digit + , rel1 :: Maybe (Either Int (Ratio Int)) <- optionMaybe + [ case divPart of + Nothing -> Left $ Text.Read.read digits + Just ddigits -> + Right $ Text.Read.read digits % Text.Read.read ddigits + | digits <- many1 digit + , divPart <- optionMaybe (string "/" *> many1 digit) + ] + ] + ] diff --git a/data/Test299.hs b/data/Test299.hs new file mode 100644 index 0000000..26927f9 --- /dev/null +++ b/data/Test299.hs @@ -0,0 +1,3 @@ +func = fooooooooooooooooooooooooooooooooo $ foooooooooooooooooooooooooooooooo + foooooooooooooooooooooooooooooooo + foooooooooooooooooooooooooooooooo diff --git a/data/Test3.hs b/data/Test3.hs new file mode 100644 index 0000000..98d8196 --- /dev/null +++ b/data/Test3.hs @@ -0,0 +1,4 @@ +func + :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lakjsdlkjasldkj + -> lakjsdlkjasldkj diff --git a/data/Test30.hs b/data/Test30.hs new file mode 100644 index 0000000..2ed144e --- /dev/null +++ b/data/Test30.hs @@ -0,0 +1,6 @@ +func + :: [ ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) + ] diff --git a/data/Test300.hs b/data/Test300.hs new file mode 100644 index 0000000..0338df4 --- /dev/null +++ b/data/Test300.hs @@ -0,0 +1,4 @@ +func = + fooooooooooooooooooooooooooooooooo + + foooooooooooooooooooooooooooooooo foooooooooooooooooooooooooooooooo + foooooooooooooooooooooooooooooooo diff --git a/data/Test301.hs b/data/Test301.hs new file mode 100644 index 0000000..bd8d21c --- /dev/null +++ b/data/Test301.hs @@ -0,0 +1,5 @@ +func = fooooooooooooooooooooooooooooooooo + foooooooooooooooooooooooooooooooo + [ foooooooooooooooooooooooooooooooo + , foooooooooooooooooooooooooooooooo + , foooooooooooooooooooooooooooooooo + ] diff --git a/data/Test302.hs b/data/Test302.hs new file mode 100644 index 0000000..946346c --- /dev/null +++ b/data/Test302.hs @@ -0,0 +1,18 @@ +parserPrim = + [ r + | r <- + [ SGPPrimFloat $ bool id (0 -) minus $ readGnok "parserPrim" + (d1 ++ d2 ++ d3 ++ d4) + | d2 <- string "." + , d3 <- many1 (oneOf "0123456789") + , _ <- string "f" + ] + <|> [ SGPPrimFloat $ bool id (0 -) minus $ fromIntegral + (readGnok "parserPrim" d1 :: Integer) + | _ <- string "f" + ] + <|> [ SGPPrimInt $ bool id (0 -) minus $ fromIntegral + (readGnok "parserPrim" d1 :: Integer) + | _ <- string "i" + ] + ] diff --git a/data/Test303.hs b/data/Test303.hs new file mode 100644 index 0000000..d3f4d9e --- /dev/null +++ b/data/Test303.hs @@ -0,0 +1,2 @@ +samples = (SV.unpackaaaaadat) <&> \f -> + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/data/Test304.hs b/data/Test304.hs new file mode 100644 index 0000000..c62bfc0 --- /dev/null +++ b/data/Test304.hs @@ -0,0 +1,9 @@ +runBrittany tabSize text = do + let config' = staticDefaultConfig + config = config' + { _conf_layout = (_conf_layout config') + { _lconfig_indentAmount = coerce tabSize + } + , _conf_forward = forwardOptionsSyntaxExtsEnabled + } + parsePrintModule config text diff --git a/data/Test305.hs b/data/Test305.hs new file mode 100644 index 0000000..a288c39 --- /dev/null +++ b/data/Test305.hs @@ -0,0 +1,11 @@ +-- brittany { lconfig_indentPolicy: IndentPolicyLeft } +runBrittany tabSize text = do + let + config' = staticDefaultConfig + config = config' + { _conf_layout = (_conf_layout config') + { _lconfig_indentAmount = coerce tabSize + } + , _conf_forward = forwardOptionsSyntaxExtsEnabled + } + parsePrintModule config text diff --git a/data/Test306.hs b/data/Test306.hs new file mode 100644 index 0000000..822d18a --- /dev/null +++ b/data/Test306.hs @@ -0,0 +1,7 @@ +foo = + ( a + , -- comment1 + b + -- comment2 + , c + ) diff --git a/data/Test307.hs b/data/Test307.hs new file mode 100644 index 0000000..0d54fb5 --- /dev/null +++ b/data/Test307.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE TypeApplications #-} +foo = bar @Baz diff --git a/data/Test308.hs b/data/Test308.hs new file mode 100644 index 0000000..ca3fd97 --- /dev/null +++ b/data/Test308.hs @@ -0,0 +1,50 @@ +{-# LANGUAGE TypeApplications #-} +layoutPatternBindFinal alignmentToken binderDoc mPatDoc clauseDocs = do + docAlt + $ -- one-line solution + [ docCols + (ColBindingLine alignmentToken) + [ docSeq (patPartInline ++ [guardPart]) + , docSeq + [ appSep $ return binderDoc + , docForceSingleline $ return body + , wherePart + ] + ] + | not hasComments + , [(guards, body, _bodyRaw)] <- [clauseDocs] + , let guardPart = singleLineGuardsDoc guards + , wherePart <- case mWhereDocs of + Nothing -> return @[] $ docEmpty + Just [w] -> return @[] $ docSeq + [ docSeparator + , appSep $ docLit $ Text.pack "where" + , docSetIndentLevel $ docForceSingleline $ return w + ] + _ -> [] + ] + ++ -- one-line solution + where in next line(s) + [ docLines + $ [ docCols + (ColBindingLine alignmentToken) + [ docSeq (patPartInline ++ [guardPart]) + , docSeq + [appSep $ return binderDoc, docForceParSpacing $ return body] + ] + ] + ++ wherePartMultiLine + | [(guards, body, _bodyRaw)] <- [clauseDocs] + , let guardPart = singleLineGuardsDoc guards + , Data.Maybe.isJust mWhereDocs + ] + ++ -- two-line solution + where in next line(s) + [ docLines + $ [ docForceSingleline + $ docSeq (patPartInline ++ [guardPart, return binderDoc]) + , docEnsureIndent BrIndentRegular $ docForceSingleline $ return + body + ] + ++ wherePartMultiLine + | [(guards, body, _bodyRaw)] <- [clauseDocs] + , let guardPart = singleLineGuardsDoc guards + ] diff --git a/data/Test309.hs b/data/Test309.hs new file mode 100644 index 0000000..d02a8c6 --- /dev/null +++ b/data/Test309.hs @@ -0,0 +1,9 @@ +{-# LANGUAGE MultiWayIf #-} +func = do + let foo = if + | Constuctoooooooooooooooooooooooooooooooooooor `elem` artics -- TODO + -> max + (defLen - 0.2) -- TODO + (defLen * 0.8) + | otherwise -> max (defLen - 0.05) (defLen * 0.95) -- TODO + return True diff --git a/data/Test31.hs b/data/Test31.hs new file mode 100644 index 0000000..7e217d5 --- /dev/null +++ b/data/Test31.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE ScopedTypeVariables #-} +func :: forall (a :: *) b . a -> b diff --git a/data/Test310.hs b/data/Test310.hs new file mode 100644 index 0000000..a6f54fa --- /dev/null +++ b/data/Test310.hs @@ -0,0 +1,5 @@ +foo n = case n of + 1 -> True + -1 -> False +bar n = case n of + (-2, -2) -> (-2, -2) diff --git a/data/Test311.hs b/data/Test311.hs new file mode 100644 index 0000000..99e92c5 --- /dev/null +++ b/data/Test311.hs @@ -0,0 +1,5 @@ +{-# LANGUAGE TypeApplications #-} +foo = + let a = b @1 + cccc = () + in foo diff --git a/data/Test312.hs b/data/Test312.hs new file mode 100644 index 0000000..615e416 --- /dev/null +++ b/data/Test312.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE RecordWildCards #-} +v = A { a = 1, .. } where b = 2 diff --git a/data/Test313.hs b/data/Test313.hs new file mode 100644 index 0000000..1f5f34f --- /dev/null +++ b/data/Test313.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE RecordWildCards #-} +v = A { .. } where b = 2 diff --git a/data/Test314.hs b/data/Test314.hs new file mode 100644 index 0000000..e0cc55d --- /dev/null +++ b/data/Test314.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE RecordWildCards #-} +v = A { a = 1, b = 2, c = 3 } diff --git a/data/Test315.hs b/data/Test315.hs new file mode 100644 index 0000000..8bd72ce --- /dev/null +++ b/data/Test315.hs @@ -0,0 +1 @@ +test :: Proxy 'Int diff --git a/data/Test316.hs b/data/Test316.hs new file mode 100644 index 0000000..e5a8eef --- /dev/null +++ b/data/Test316.hs @@ -0,0 +1 @@ +test :: Proxy '[ 'True] diff --git a/data/Test317.hs b/data/Test317.hs new file mode 100644 index 0000000..79d5442 --- /dev/null +++ b/data/Test317.hs @@ -0,0 +1 @@ +test :: Proxy '[Bool] diff --git a/data/Test318.hs b/data/Test318.hs new file mode 100644 index 0000000..f2c5673 --- /dev/null +++ b/data/Test318.hs @@ -0,0 +1,7 @@ +{-# LANGUAGE RankNTypes, KindSignatures #-} +func + :: forall m str + . (Str str, Monad m) + => Int + -> Proxy (str :: [*]) + -> m (Tagged str String) diff --git a/data/Test319.hs b/data/Test319.hs new file mode 100644 index 0000000..1c6ce85 --- /dev/null +++ b/data/Test319.hs @@ -0,0 +1,13 @@ +widgetsDyn = + [ [ vBox + [ padTop Max outputLinesWidget + , padRight Max wid1 <+> flowWidget -- alignment here is strange/buggy + , padBottom (Pad 5) help + ] + ] + | wid1 <- promptDyn + , (flowWidget, _) <- flowResultD + , outputLinesWidget <- outputLinesWidgetD + , help <- suggestionHelpBox + , parser <- cmdParserD + ] diff --git a/data/Test32.hs b/data/Test32.hs new file mode 100644 index 0000000..19e72f4 --- /dev/null +++ b/data/Test32.hs @@ -0,0 +1,10 @@ +{-# LANGUAGE ScopedTypeVariables #-} +func + :: forall m + . Foo + => ColMap2 + -> ColInfo + -> ColInfo + -> ColInfo + -> ColInfo + -> m () diff --git a/data/Test320.hs b/data/Test320.hs new file mode 100644 index 0000000..c7e9eae --- /dev/null +++ b/data/Test320.hs @@ -0,0 +1,2 @@ +fmapuv :: U.Unbox a => (a -> b) -> U.Vector a -> V.Vector b +fmapuv f xs = G.generate (G.length xs) (f . (xs G.!)) diff --git a/data/Test321.hs b/data/Test321.hs new file mode 100644 index 0000000..5cee20d --- /dev/null +++ b/data/Test321.hs @@ -0,0 +1 @@ +cs0 = 0 : [ c / Interval n | c <- cs | n <- [1..] ] diff --git a/data/Test322.hs b/data/Test322.hs new file mode 100644 index 0000000..f515f6d --- /dev/null +++ b/data/Test322.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE TemplateHaskell #-} +deriveFromJSON (unPrefix "assignPost") ''AssignmentPost diff --git a/data/Test323.hs b/data/Test323.hs new file mode 100644 index 0000000..ae0ee2e --- /dev/null +++ b/data/Test323.hs @@ -0,0 +1,7 @@ +main = -- a + let --b + x = 1 -- x + y = 2 -- y + in do + print x + print y diff --git a/data/Test324.hs b/data/Test324.hs new file mode 100644 index 0000000..fcbe491 --- /dev/null +++ b/data/Test324.hs @@ -0,0 +1,9 @@ +alternatives :: Parser (Maybe Text) +alternatives = + alternativeOne -- first try this one + <|> alterantiveTwo -- then this one + <|> alternativeThree -- then this one + where + alternativeOne = purer "one" + alternativeTwo = purer "two" + alterantiveThree = purer "three" diff --git a/data/Test325.hs b/data/Test325.hs new file mode 100644 index 0000000..b8d67d0 --- /dev/null +++ b/data/Test325.hs @@ -0,0 +1,4 @@ +{-# LANGUAGE BangPatterns #-} +func = do + let !forced = some + pure () diff --git a/data/Test326.hs b/data/Test326.hs new file mode 100644 index 0000000..0435d04 --- /dev/null +++ b/data/Test326.hs @@ -0,0 +1,4 @@ +spanKey p q = case minViewWithKey q of + Just ((k, _), q') | p k -> + let (kas, q'') = spanKey p q' in ((k, a) : kas, q'') + _ -> ([], q) diff --git a/data/Test327.hs b/data/Test327.hs new file mode 100644 index 0000000..b7efa94 --- /dev/null +++ b/data/Test327.hs @@ -0,0 +1 @@ +a :: () ':- () diff --git a/data/Test328.hs b/data/Test328.hs new file mode 100644 index 0000000..c2ace2f --- /dev/null +++ b/data/Test328.hs @@ -0,0 +1,3 @@ +func = do + createDirectoryIfMissing True path + openFile fileName AppendMode diff --git a/data/Test329.hs b/data/Test329.hs new file mode 100644 index 0000000..449cf88 --- /dev/null +++ b/data/Test329.hs @@ -0,0 +1,7 @@ +alternatives :: Parser (Maybe Text) +alternatives = -- a + ( -- b + alternativeOne -- c + <|> alterantiveTwo -- d + <|> alternativeThree -- e + ) -- f diff --git a/data/Test33.hs b/data/Test33.hs new file mode 100644 index 0000000..335c68e --- /dev/null +++ b/data/Test33.hs @@ -0,0 +1,10 @@ +{-# LANGUAGE ScopedTypeVariables #-} +func + :: forall m + . ColMap2 + -> ColInfo + -> ColInfo + -> ColInfo + -> ColInfo + -> ColInfo + -> m () diff --git a/data/Test330.hs b/data/Test330.hs new file mode 100644 index 0000000..0485ac6 --- /dev/null +++ b/data/Test330.hs @@ -0,0 +1,10 @@ +{-# LANGUAGE ScopedTypeVariables #-} +func + :: forall a + . () + => aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + -> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa +func + :: () + => aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + -> aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/data/Test331.hs b/data/Test331.hs new file mode 100644 index 0000000..9737285 --- /dev/null +++ b/data/Test331.hs @@ -0,0 +1,5 @@ +go l [] = Right l +go l ((IRType, _a) : eqr) = go l eqr +go l ((_, IRType) : eqr) = go l eqr +go _ ((IRTypeError ps t1 t2, _) : _) = Left $ makeError ps t1 t2 +go _ ((_, IRTypeError ps t1 t2) : _) = Left $ makeError ps t1 t2 diff --git a/data/Test332.hs b/data/Test332.hs new file mode 100644 index 0000000..1785320 --- /dev/null +++ b/data/Test332.hs @@ -0,0 +1,2 @@ +type instance XPure StageParse = () +type Pair a = (a, a) diff --git a/data/Test333.hs b/data/Test333.hs new file mode 100644 index 0000000..0b87f50 --- /dev/null +++ b/data/Test333.hs @@ -0,0 +1,18 @@ +-- brittany { lconfig_indentAmount: 4, lconfig_indentPolicy: IndentPolicyMultiple } +dsfnjKeekbwwbosbOfakxqRsiyix cnehokzozwbVaguvu migbnaRwutbz = + let + eyuAfrarIso' + :: (RveoexdxunuAafalm -> Axlau (Axlau (a, OinejrdCplle))) + -> Gbodoy + -> Axlau (Axlau OinejrdCplle, Gbodoy) + eyuAfrarIso' = ulcPaaekBst cnehokzozwbVaguvu + amkgoxEhalazJjxunecCuIfaw + :: Axlau (Axlau OinejrdCplle, Gbodoy) -> Axlau RqlnrluYqednbCiggxi + amkgoxEhalazJjxunecCuIfaw uKqviuBisjtn = do + (sEmo, quc) <- uKqviuBisjtn + pure (xoheccewfWoeyiagOkfodiq sEmo quc) + xoheccewfWoeyiagOkfodiq + :: Axlau OinejrdCplle -> Gbodoy -> RqlnrluYqednbCiggxi + xoheccewfWoeyiagOkfodiq sEmo quc = case migbnaRwutbz of + Afogmf -> xgeqe (OfBkkuih quc) (Ciitog quc) sEmo + in QabqyilexuiNizzhsQuxxac migbnaRwutbz (hwaTihhjt lhowvscIiozgqe) diff --git a/data/Test334.hs b/data/Test334.hs new file mode 100644 index 0000000..f97dfd6 --- /dev/null +++ b/data/Test334.hs @@ -0,0 +1,5 @@ +spec = do + it "creates a snapshot at the given level" . withGraph runDB $ do + lift $ do + studentDiagnosticReadingLevel updatedStudent `shouldBe` Just 10 -- x + elaSnapshotReadingLevel snapshot `shouldBe` 12 diff --git a/data/Test335.hs b/data/Test335.hs new file mode 100644 index 0000000..0a2a760 --- /dev/null +++ b/data/Test335.hs @@ -0,0 +1,12 @@ +jaicyhHumzo btrKpeyiFej mava = do + m :: VtohxeRgpmgsu <- qloxIfiq mava + case m of + ZumnaoFujayerIswadabo kkecm chlixxag -> do + imomue <- ozisduRaqiseSBAob btrKpeyiFej $ \s -> + case MizA.pigevo kkecm (_tc_gulawulu s) of + Ebocaba -> + ( s { _tc_gulawulu = MizA.jxariu kkecm rwuRqxzhjo (_tc_gulawulu s) } + , Gtzvonm + ) + Xcde{} -> (s, Pioemav) + pure imomue diff --git a/data/Test336.hs b/data/Test336.hs new file mode 100644 index 0000000..5876f85 --- /dev/null +++ b/data/Test336.hs @@ -0,0 +1,8 @@ +-- brittany { lconfig_indentPolicy: IndentPolicyMultiple } +foo = bar + arg1 -- this is the first argument + arg2 -- this is the second argument + arg3 -- this is the third argument, now I'll skip one comment + arg4 + arg5 -- this is the fifth argument + arg6 -- this is the sixth argument diff --git a/data/Test337.hs b/data/Test337.hs new file mode 100644 index 0000000..917af95 --- /dev/null +++ b/data/Test337.hs @@ -0,0 +1,4 @@ +True `nand` True = False +nand _ _ = True +nor False False = True +_ `nor` _ = False diff --git a/data/Test338.hs b/data/Test338.hs new file mode 100644 index 0000000..e6df6c6 --- /dev/null +++ b/data/Test338.hs @@ -0,0 +1 @@ +f ((:) a as) = undefined diff --git a/data/Test339.hs b/data/Test339.hs new file mode 100644 index 0000000..cfa949d --- /dev/null +++ b/data/Test339.hs @@ -0,0 +1,5 @@ +{-# LANGUAGE BangPatterns #-} +a = \x -> x +b = \ ~x -> x +c = \ !x -> x +d = \(~x) -> x diff --git a/data/Test34.hs b/data/Test34.hs new file mode 100644 index 0000000..24f6b28 --- /dev/null +++ b/data/Test34.hs @@ -0,0 +1,9 @@ +{-# LANGUAGE RankNTypes #-} +addFlagStringParam + :: forall f out + . (Applicative f) + => String -- ^ short flag chars, i.e. "v" for -v + -> [String] -- ^ list of long names, i.e. ["verbose"] + -> String -- ^ param name + -> Flag String -- ^ properties + -> CmdParser f out String diff --git a/data/Test340.hs b/data/Test340.hs new file mode 100644 index 0000000..fb61bc1 --- /dev/null +++ b/data/Test340.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE RankNTypes #-} +func :: forall b . Show b => b -> String diff --git a/data/Test341.hs b/data/Test341.hs new file mode 100644 index 0000000..cea68da --- /dev/null +++ b/data/Test341.hs @@ -0,0 +1,3 @@ +{-# LANGUAGE TypeFamilies #-} +f :: ((~) a b) => a -> b +f = id diff --git a/data/Test342.hs b/data/Test342.hs new file mode 100644 index 0000000..c522948 --- /dev/null +++ b/data/Test342.hs @@ -0,0 +1,50 @@ +-- brittany { lconfig_indentPolicy: IndentPolicyLeft } +vakjkeSulxudbFokvir = Duotpo + { _ekku_gcrpbze = xgonae (1 :: Int) + , _oola_louwu = FoqsiYcuidx + { _xxagu_umea_iaztoj = xgonae False + , _tuktg_tizo_kfikacygsqf = xgonae False + , _ahzbo_xpow_otq_nzeyufq = xgonae False + , _uagpi_lzps_luy_xcjn = xgonae False + , _dxono_qjef_aqtafq_bes = xgonae False + , _yzuaf_nviy_vuhwxe_ihnbo_uhw = xgonae False + , _iwcit_fzjs_yerakt_dicox_mtryitko = xgonae False + , _ehjim_ucfe_dewarp_newrt_gso = xgonae False + , _ogtxb_ivoj_amqgai_rttui_xuwhetb = xgonae False + , _bhycb_iexz_megaug_qunoa_ohaked = xgonae False + , _nnmbe_uqgt_ewsuga_vaiis = xgonae False + , _otzil_ucvugaiyj_aosoiatunx_asir = xgonae False + } + , _iwsc_lalojz = XqspaiDainqw + { _uajznac_ugah = xgonae (80 :: Int) + , _qayziku_gazibzDejipj = xgonae DewizeCxwgyiKjig + , _auhebll_fiqjxyArfxia = xgonae (2 :: Int) + , _zubfuhq_dupiwnIoophXameeet = xgonae True + , _oavnuqg_opkreyOufuIkifiin = xgonae True + , _ufojfwy_fhuzcePeqwfu = xgonae (50 :: Int) + , _mlosikq_zajdxxSeRoelpf = xgonae (50 :: Int) + , _heemavf_fjgOfoaikh = xgonae (FyoVfvdygaZuzuvbeWarwuq 3) + , _ohxmeoq_ogtbfoPtqezVseu = xgonae (EdjotoLcbapUdiuMmytwoig 0.7) + , _omupuiu_ituamexjuLccwu = xgonae (30 :: Int) + , _xoseksf_atvwwdwaoHanofMyUvujjopoz = xgonae True + , _umuuuat_nuamezwWeqfUqzrnaxwp = xgonae False + , _uuriguz_wixhutbuKecigaFiwosret = xgonae True + , _betohxp_scixaLsvcesErtwItxrnaJmuz = xgonae False + , _lchxgee_olaetGcqzuqxVujenCzexub = xgonae True + , _egeibao_imamkuigqikhZdcbpidokVcixiqew = xgonae False + } + , _nloo_cfmrgZcisiugk = YuwodSavxwnicBekuel + { _oebew_rrtpvthUzlizjAqIwesly = xgonae False + , _blkff_Acxoid = xgonae False + , _datei_YewolAowoqOpunvpgu = xgonae BeekgUzojaPnixxaruJehyPmnnfu + , _ejfrj_eheb_justvh_pumcp_ismya = xgonae False + } + , _kena_uzeddovosoki = NyoRvshullezUpauud + { _mtfuwi_TUVEmoi = xgonae RZXKoytUtogx + , _larqam_adaxPehaylZafeqgpc = xgonae False + } + , _spob_qipaarx = KaxavsmOtoyeaq { _rusrirw_okx = Tajemkix [] } + , _vmah_uivucnfka_ikaquebxay_gzcm = xgonae False + , _qaqb_eykzuyuwi = xgonae False + -- test comment + } diff --git a/data/Test343.hs b/data/Test343.hs new file mode 100644 index 0000000..bb5d7d2 --- /dev/null +++ b/data/Test343.hs @@ -0,0 +1,10 @@ +-- brittany { lconfig_indentPolicy: IndentPolicyLeft } +vakjkeSulxudbFokvir = Duotpo + { _ekku_gcrpbze = xgonae (1 :: Int) + , _spob_qipaarx = KaxavsmOtoyeaq { _rusrirw_okx = Tajemkix [] } + , _vmah_uivucnfka_ikaquebxay_gzcm = xgonae False + , _qaqb_eykzuyuwi = xgonae False + -- test comment + , -- N.B. + .. -- x + } diff --git a/data/Test344.hs b/data/Test344.hs new file mode 100644 index 0000000..53649fc --- /dev/null +++ b/data/Test344.hs @@ -0,0 +1,7 @@ +func = abc + def + -- a + -- b + -- comment + where + abc = 13 + def = 1 diff --git a/data/Test345.hs b/data/Test345.hs new file mode 100644 index 0000000..613a398 --- /dev/null +++ b/data/Test345.hs @@ -0,0 +1,13 @@ +zItazySunefp twgq nlyo lwojjoBiecao = + let mhIarjyai = + ukwAausnfcn + $ XojlsTOSR.vuwOvuvdAZUOJaa + $ XojlsTOSR.vkesForanLiufjeDI + $ XojlsTOSR.vkesForanLiufjeDI + $ XojlsTOSR.popjAyijoWarueeP + $ XojlsTOSR.jpwuPmafuDqlbkt nlyo + $ XojlsTOSR.jpwuPmafuDqlbkt xxneswWhxwng + $ XojlsTOSR.jpwuPmafuDqlbkt oloCuxeDdow + $ XojlsTOSR.jpwuPmafuDqlbkt (uwurrvoNnukzefuDjeh lwojjoBiecao nlyo) + $ etOslnoz lwojjoBiecao + in kucotg $ (bbbr, Yoxe.Dwzbuzi.zrLokoTnuy piv) diff --git a/data/Test346.hs b/data/Test346.hs new file mode 100644 index 0000000..83ba0bc --- /dev/null +++ b/data/Test346.hs @@ -0,0 +1,2 @@ +-- test +module MyModule where diff --git a/data/Test347.hs b/data/Test347.hs new file mode 100644 index 0000000..d01c656 --- /dev/null +++ b/data/Test347.hs @@ -0,0 +1,8 @@ +foo = + [ ("xxx", "xx") + , -- + ("xx" , "xx") + -- + , ("xx" , "xxxxx") + , ("xx" , "xx") + ] diff --git a/data/Test348.hs b/data/Test348.hs new file mode 100644 index 0000000..d0b4eb5 --- /dev/null +++ b/data/Test348.hs @@ -0,0 +1,8 @@ +foo = + [ ("xx", "xx") + , ( "xx" -- + , "xx" + ) + , ("xx", "xxxxx") + , ("xx", "xx") + ] diff --git a/data/Test349.hs b/data/Test349.hs new file mode 100644 index 0000000..0d374de --- /dev/null +++ b/data/Test349.hs @@ -0,0 +1,6 @@ +module Main + ( DataTypeI + , DataTypeII(DataConstructor) + -- * Haddock heading + , name + ) where diff --git a/data/Test35.hs b/data/Test35.hs new file mode 100644 index 0000000..7e217d5 --- /dev/null +++ b/data/Test35.hs @@ -0,0 +1,2 @@ +{-# LANGUAGE ScopedTypeVariables #-} +func :: forall (a :: *) b . a -> b diff --git a/data/Test350.hs b/data/Test350.hs new file mode 100644 index 0000000..0f5b4e9 --- /dev/null +++ b/data/Test350.hs @@ -0,0 +1,23 @@ +xeoeqibIaib + :: ( KqujhIsaus m + , XivuvIpoboi Droqifim m + , IgorvOtowtf m + , RyagaYaqac m + , QouruDU m + ) + => MaptAdfuxgu + -> Zcnxg NsxayqmvIjsezea -- ^ if Lvqucoo, opsip jl reyoyhk lfil qaculxgd + -> QNOZqwuzg + -> Eoattuq + '[ XkatytdWdquraosu -- test comment + , KyezKijim -- another test comment + , DjmioeePuoeg + , NinrxoiOwezc + , QATAlrijacpk + , TrutvotwIwifiqOjdtu + , CoMmuatjwr + , BoZckzqyodseZole + , VagfwoXaeChfqe + ] + m + () diff --git a/data/Test351.hs b/data/Test351.hs new file mode 100644 index 0000000..fe25514 --- /dev/null +++ b/data/Test351.hs @@ -0,0 +1,7 @@ +createRedirectedProcess processConfig = do + let redirectedProc = (_processConfig_inner processConfig) + { std_in = CreatePipe + , std_out = CreatePipe + , std_err = CreatePipe + } + foo diff --git a/data/Test352.hs b/data/Test352.hs new file mode 100644 index 0000000..3e5d558 --- /dev/null +++ b/data/Test352.hs @@ -0,0 +1,5 @@ +instance HasDependencies SomeDataModel where + -- N.B. Here is a bunch of explanatory context about the relationship + -- between these data models or whatever. + type Dependencies SomeDataModel + = (SomeOtherDataModelId, SomeOtherOtherDataModelId) diff --git a/data/Test353.hs b/data/Test353.hs new file mode 100644 index 0000000..cedb99d --- /dev/null +++ b/data/Test353.hs @@ -0,0 +1,4 @@ +func = + do + y + >>= x diff --git a/data/Test354.hs b/data/Test354.hs new file mode 100644 index 0000000..e082c6d --- /dev/null +++ b/data/Test354.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_indentAmount: 4, lconfig_indentPolicy: IndentPolicyMultiple } +func = + mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj + + mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj diff --git a/data/Test355.hs b/data/Test355.hs new file mode 100644 index 0000000..56cf385 --- /dev/null +++ b/data/Test355.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_indentAmount: 4, lconfig_indentPolicy: IndentPolicyMultiple } +foo = do + let aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa = + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + foo diff --git a/data/Test356.hs b/data/Test356.hs new file mode 100644 index 0000000..94a19a4 --- /dev/null +++ b/data/Test356.hs @@ -0,0 +1,11 @@ +-- brittany { lconfig_indentAmount: 8, lconfig_indentPolicy: IndentPolicyMultiple } +foo = do + let aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa = + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + foo +foo = do + let aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa = + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + foo diff --git a/data/Test357.hs b/data/Test357.hs new file mode 100644 index 0000000..9fd454a --- /dev/null +++ b/data/Test357.hs @@ -0,0 +1,7 @@ +-- brittany { lconfig_indentAmount: 4, lconfig_indentPolicy: IndentPolicyMultiple } +foo = asdyf8asdf + "ajsdfas" + [ asjdf asyhf $ do + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + ] diff --git a/data/Test358.hs b/data/Test358.hs new file mode 100644 index 0000000..7a121e7 --- /dev/null +++ b/data/Test358.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func :: a -> a diff --git a/data/Test359.hs b/data/Test359.hs new file mode 100644 index 0000000..6991c53 --- /dev/null +++ b/data/Test359.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd diff --git a/data/Test36.hs b/data/Test36.hs new file mode 100644 index 0000000..7fc70e4 --- /dev/null +++ b/data/Test36.hs @@ -0,0 +1 @@ +func :: a -> b -- comment diff --git a/data/Test360.hs b/data/Test360.hs new file mode 100644 index 0000000..b7c0128 --- /dev/null +++ b/data/Test360.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lakjsdlkjasldkj + -> lakjsdlkjasldkj diff --git a/data/Test361.hs b/data/Test361.hs new file mode 100644 index 0000000..ffd3ff9 --- /dev/null +++ b/data/Test361.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func :: ((a)) diff --git a/data/Test362.hs b/data/Test362.hs new file mode 100644 index 0000000..df79511 --- /dev/null +++ b/data/Test362.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func :: (a -> a) -> a diff --git a/data/Test363.hs b/data/Test363.hs new file mode 100644 index 0000000..921d92d --- /dev/null +++ b/data/Test363.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func :: a -> (a -> a) diff --git a/data/Test364.hs b/data/Test364.hs new file mode 100644 index 0000000..ed845fb --- /dev/null +++ b/data/Test364.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func :: (((((((((()))))))))) +-- current output is.. funny. wonder if that can/needs to be improved.. diff --git a/data/Test365.hs b/data/Test365.hs new file mode 100644 index 0000000..bf8f673 --- /dev/null +++ b/data/Test365.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func :: () diff --git a/data/Test366.hs b/data/Test366.hs new file mode 100644 index 0000000..a478841 --- /dev/null +++ b/data/Test366.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lakjsdlkjasldkj + -> lakjsdlkjasldkj + ) diff --git a/data/Test367.hs b/data/Test367.hs new file mode 100644 index 0000000..165c111 --- /dev/null +++ b/data/Test367.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> (lakjsdlkjasldkj -> lakjsdlkjasldkj) diff --git a/data/Test368.hs b/data/Test368.hs new file mode 100644 index 0000000..4a1e980 --- /dev/null +++ b/data/Test368.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: (lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd -> lakjsdlkjasldkj) + -> lakjsdlkjasldkj diff --git a/data/Test369.hs b/data/Test369.hs new file mode 100644 index 0000000..ed4d90c --- /dev/null +++ b/data/Test369.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) + -> lakjsdlkjasldkj diff --git a/data/Test37.hs b/data/Test37.hs new file mode 100644 index 0000000..70aa3c6 --- /dev/null +++ b/data/Test37.hs @@ -0,0 +1,2 @@ +funcA :: a -> b -- comment A +funcB :: a -> b -- comment B diff --git a/data/Test370.hs b/data/Test370.hs new file mode 100644 index 0000000..4621ea3 --- /dev/null +++ b/data/Test370.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: ( ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) + ) diff --git a/data/Test371.hs b/data/Test371.hs new file mode 100644 index 0000000..0ec2ac4 --- /dev/null +++ b/data/Test371.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func :: asd -> Either a b diff --git a/data/Test372.hs b/data/Test372.hs new file mode 100644 index 0000000..2adc98c --- /dev/null +++ b/data/Test372.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: asd + -> Either + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd diff --git a/data/Test373.hs b/data/Test373.hs new file mode 100644 index 0000000..faee723 --- /dev/null +++ b/data/Test373.hs @@ -0,0 +1,7 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: asd + -> Trither + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd diff --git a/data/Test374.hs b/data/Test374.hs new file mode 100644 index 0000000..be2766e --- /dev/null +++ b/data/Test374.hs @@ -0,0 +1,7 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: Trither + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> asd diff --git a/data/Test375.hs b/data/Test375.hs new file mode 100644 index 0000000..6efe43f --- /dev/null +++ b/data/Test375.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: Trither + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + (lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd -> asd) diff --git a/data/Test376.hs b/data/Test376.hs new file mode 100644 index 0000000..8d7a7ae --- /dev/null +++ b/data/Test376.hs @@ -0,0 +1,8 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: Trither + asd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) diff --git a/data/Test377.hs b/data/Test377.hs new file mode 100644 index 0000000..16d6ee7 --- /dev/null +++ b/data/Test377.hs @@ -0,0 +1,8 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: asd + -> ( Trither + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) diff --git a/data/Test378.hs b/data/Test378.hs new file mode 100644 index 0000000..b7a24ca --- /dev/null +++ b/data/Test378.hs @@ -0,0 +1,8 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: asd + -> ( Trither + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd diff --git a/data/Test379.hs b/data/Test379.hs new file mode 100644 index 0000000..50f95b2 --- /dev/null +++ b/data/Test379.hs @@ -0,0 +1,8 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: ( Trither + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) + lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> asd diff --git a/data/Test38.hs b/data/Test38.hs new file mode 100644 index 0000000..6978eb6 --- /dev/null +++ b/data/Test38.hs @@ -0,0 +1,11 @@ +-- a +func -- b + :: -- c + a -- d + -> -- e + ( -- f + c -- g + , -- h + d -- i + ) -- j +-- k diff --git a/data/Test380.hs b/data/Test380.hs new file mode 100644 index 0000000..4453786 --- /dev/null +++ b/data/Test380.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func :: [a -> b] diff --git a/data/Test381.hs b/data/Test381.hs new file mode 100644 index 0000000..faf63f1 --- /dev/null +++ b/data/Test381.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: [ lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ] diff --git a/data/Test382.hs b/data/Test382.hs new file mode 100644 index 0000000..fbcaa1c --- /dev/null +++ b/data/Test382.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: [ ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) + ] diff --git a/data/Test383.hs b/data/Test383.hs new file mode 100644 index 0000000..edfefd8 --- /dev/null +++ b/data/Test383.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func :: (a, b, c) diff --git a/data/Test384.hs b/data/Test384.hs new file mode 100644 index 0000000..cb8e4cd --- /dev/null +++ b/data/Test384.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func :: ((a, b, c), (a, b, c), (a, b, c)) diff --git a/data/Test385.hs b/data/Test385.hs new file mode 100644 index 0000000..8177c7f --- /dev/null +++ b/data/Test385.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) diff --git a/data/Test386.hs b/data/Test386.hs new file mode 100644 index 0000000..e3efa79 --- /dev/null +++ b/data/Test386.hs @@ -0,0 +1,7 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: ( ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + , (lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd) + , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) + ) diff --git a/data/Test387.hs b/data/Test387.hs new file mode 100644 index 0000000..3a64ee9 --- /dev/null +++ b/data/Test387.hs @@ -0,0 +1,7 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: [ ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + , lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) + ] diff --git a/data/Test388.hs b/data/Test388.hs new file mode 100644 index 0000000..15b0b06 --- /dev/null +++ b/data/Test388.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +{-# LANGUAGE ScopedTypeVariables #-} +func :: forall (a :: *) b . a -> b diff --git a/data/Test389.hs b/data/Test389.hs new file mode 100644 index 0000000..5acb0b6 --- /dev/null +++ b/data/Test389.hs @@ -0,0 +1,11 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +{-# LANGUAGE ScopedTypeVariables #-} +func + :: forall m + . Foo + => ColMap2 + -> ColInfo + -> ColInfo + -> ColInfo + -> ColInfo + -> m () diff --git a/data/Test39.hs b/data/Test39.hs new file mode 100644 index 0000000..9c9b324 --- /dev/null +++ b/data/Test39.hs @@ -0,0 +1,4 @@ +func = f + where + {-# INLINE f #-} + f = id diff --git a/data/Test390.hs b/data/Test390.hs new file mode 100644 index 0000000..72f2d0a --- /dev/null +++ b/data/Test390.hs @@ -0,0 +1,11 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +{-# LANGUAGE ScopedTypeVariables #-} +func + :: forall m + . ColMap2 + -> ColInfo + -> ColInfo + -> ColInfo + -> ColInfo + -> ColInfo + -> m () diff --git a/data/Test391.hs b/data/Test391.hs new file mode 100644 index 0000000..15b0b06 --- /dev/null +++ b/data/Test391.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +{-# LANGUAGE ScopedTypeVariables #-} +func :: forall (a :: *) b . a -> b diff --git a/data/Test392.hs b/data/Test392.hs new file mode 100644 index 0000000..de8ad75 --- /dev/null +++ b/data/Test392.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func :: a -> b -- comment diff --git a/data/Test393.hs b/data/Test393.hs new file mode 100644 index 0000000..1a15a53 --- /dev/null +++ b/data/Test393.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +funcA :: a -> b -- comment A +funcB :: a -> b -- comment B diff --git a/data/Test394.hs b/data/Test394.hs new file mode 100644 index 0000000..44eb854 --- /dev/null +++ b/data/Test394.hs @@ -0,0 +1,11 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +-- a +func -- b + :: -- c + a -- d + -> -- e + ( -- f + c -- g + , -- h + d -- i + ) -- j-- k diff --git a/data/Test395.hs b/data/Test395.hs new file mode 100644 index 0000000..729290d --- /dev/null +++ b/data/Test395.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +{-# LANGUAGE ImplicitParams #-} +func :: (?asd::Int) -> () diff --git a/data/Test396.hs b/data/Test396.hs new file mode 100644 index 0000000..f706d17 --- /dev/null +++ b/data/Test396.hs @@ -0,0 +1,8 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +{-# LANGUAGE ImplicitParams #-} +func + :: ( ?asd + :: lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + ) + -> () diff --git a/data/Test397.hs b/data/Test397.hs new file mode 100644 index 0000000..750f3f9 --- /dev/null +++ b/data/Test397.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = f + where + {-# INLINE f #-} + f = id diff --git a/data/Test398.hs b/data/Test398.hs new file mode 100644 index 0000000..8770767 --- /dev/null +++ b/data/Test398.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = ($) + where + {-# INLINE ($) #-} + ($) = id diff --git a/data/Test399.hs b/data/Test399.hs new file mode 100644 index 0000000..996e831 --- /dev/null +++ b/data/Test399.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = f + where + {-# INLINE CONLIKE [1] f #-} + f = id diff --git a/data/Test4.hs b/data/Test4.hs new file mode 100644 index 0000000..e517aa0 --- /dev/null +++ b/data/Test4.hs @@ -0,0 +1 @@ +func :: ((a)) diff --git a/data/Test40.hs b/data/Test40.hs new file mode 100644 index 0000000..c182430 --- /dev/null +++ b/data/Test40.hs @@ -0,0 +1,4 @@ +func = ($) + where + {-# INLINE ($) #-} + ($) = id diff --git a/data/Test400.hs b/data/Test400.hs new file mode 100644 index 0000000..8b00a95 --- /dev/null +++ b/data/Test400.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = f + where + {-# INLINE [~1] f #-} + f = id diff --git a/data/Test401.hs b/data/Test401.hs new file mode 100644 index 0000000..7d334ba --- /dev/null +++ b/data/Test401.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +data Foo = Bar + { foo :: Baz + } diff --git a/data/Test402.hs b/data/Test402.hs new file mode 100644 index 0000000..f94f463 --- /dev/null +++ b/data/Test402.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +data Foo = Bar + { foo, bar :: Baz + } diff --git a/data/Test403.hs b/data/Test403.hs new file mode 100644 index 0000000..3b2e688 --- /dev/null +++ b/data/Test403.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +data Foo = Bar + { foo :: Baz + , bar :: Bizzz + } diff --git a/data/Test404.hs b/data/Test404.hs new file mode 100644 index 0000000..9144cc0 --- /dev/null +++ b/data/Test404.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +data Foo = Bar + { foo, biz :: Baz + , bar :: Bizzz + } diff --git a/data/Test405.hs b/data/Test405.hs new file mode 100644 index 0000000..7d20e0d --- /dev/null +++ b/data/Test405.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +data Foo = Bar + { foo :: Baz + , bar :: Bizzz + } + deriving Show diff --git a/data/Test406.hs b/data/Test406.hs new file mode 100644 index 0000000..cfe7ae2 --- /dev/null +++ b/data/Test406.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +data Foo = Bar + { foo :: Baz + , bar :: Bizzz + } + deriving (Show, Eq, Monad, Functor, Traversable, Foldable) diff --git a/data/Test407.hs b/data/Test407.hs new file mode 100644 index 0000000..b889d43 --- /dev/null +++ b/data/Test407.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func x = x diff --git a/data/Test408.hs b/data/Test408.hs new file mode 100644 index 0000000..2764fb5 --- /dev/null +++ b/data/Test408.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +x *** y = x diff --git a/data/Test409.hs b/data/Test409.hs new file mode 100644 index 0000000..a9a0917 --- /dev/null +++ b/data/Test409.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +(***) x y = x diff --git a/data/Test41.hs b/data/Test41.hs new file mode 100644 index 0000000..205a728 --- /dev/null +++ b/data/Test41.hs @@ -0,0 +1,4 @@ +func = f + where + {-# INLINE CONLIKE [1] f #-} + f = id diff --git a/data/Test410.hs b/data/Test410.hs new file mode 100644 index 0000000..155d06d --- /dev/null +++ b/data/Test410.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func _ = x diff --git a/data/Test411.hs b/data/Test411.hs new file mode 100644 index 0000000..73dc40a --- /dev/null +++ b/data/Test411.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable = + x diff --git a/data/Test412.hs b/data/Test412.hs new file mode 100644 index 0000000..92a61f3 --- /dev/null +++ b/data/Test412.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable + = x diff --git a/data/Test413.hs b/data/Test413.hs new file mode 100644 index 0000000..a5f08d9 --- /dev/null +++ b/data/Test413.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable a b + = x diff --git a/data/Test414.hs b/data/Test414.hs new file mode 100644 index 0000000..c0690eb --- /dev/null +++ b/data/Test414.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func (A a) = a diff --git a/data/Test415.hs b/data/Test415.hs new file mode 100644 index 0000000..fb95ff8 --- /dev/null +++ b/data/Test415.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func (x : xr) = x diff --git a/data/Test416.hs b/data/Test416.hs new file mode 100644 index 0000000..490720c --- /dev/null +++ b/data/Test416.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func (x :+: xr) = x diff --git a/data/Test417.hs b/data/Test417.hs new file mode 100644 index 0000000..8ee6b8b --- /dev/null +++ b/data/Test417.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func | True = x diff --git a/data/Test418.hs b/data/Test418.hs new file mode 100644 index 0000000..506b4d1 --- /dev/null +++ b/data/Test418.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func x + | x = simple expression + | otherwise = 0 diff --git a/data/Test419.hs b/data/Test419.hs new file mode 100644 index 0000000..ee128f1 --- /dev/null +++ b/data/Test419.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func x + | a somewhat longer guard x = "and a somewhat longer expession that does not" + | otherwise = "fit without putting the guards in new lines" diff --git a/data/Test42.hs b/data/Test42.hs new file mode 100644 index 0000000..cfd38bb --- /dev/null +++ b/data/Test42.hs @@ -0,0 +1,2 @@ +{-# NOINLINE func #-} +func :: Int diff --git a/data/Test420.hs b/data/Test420.hs new file mode 100644 index 0000000..a8f1881 --- /dev/null +++ b/data/Test420.hs @@ -0,0 +1,8 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func x + | very long guard, another rather long guard that refers to x = nontrivial + expression + foo + bar + alsdkjlasdjlasj + | otherwise = 0 diff --git a/data/Test421.hs b/data/Test421.hs new file mode 100644 index 0000000..5dd669d --- /dev/null +++ b/data/Test421.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func x + | very long guard, another rather long guard that refers to x + = nontrivialexpression foo bar alsdkjlasdjlasj + | otherwise + = 0 diff --git a/data/Test422.hs b/data/Test422.hs new file mode 100644 index 0000000..830e3ee --- /dev/null +++ b/data/Test422.hs @@ -0,0 +1,7 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func x + | very loooooooooooooooooooooooooooooong guard + , another rather long guard that refers to x + = nontrivial expression foo bar alsdkjlasdjlasj + | otherwise + = 0 diff --git a/data/Test423.hs b/data/Test423.hs new file mode 100644 index 0000000..88d75b3 --- /dev/null +++ b/data/Test423.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = x +describe "infix op" $ do diff --git a/data/Test424.hs b/data/Test424.hs new file mode 100644 index 0000000..1258fc6 --- /dev/null +++ b/data/Test424.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = x + x diff --git a/data/Test425.hs b/data/Test425.hs new file mode 100644 index 0000000..1ed0c86 --- /dev/null +++ b/data/Test425.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = + mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj + + mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj diff --git a/data/Test426.hs b/data/Test426.hs new file mode 100644 index 0000000..e70a294 --- /dev/null +++ b/data/Test426.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = + mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj + + mweroiuxlskdfjlksj + + mweroiuxlskdfjlksj diff --git a/data/Test427.hs b/data/Test427.hs new file mode 100644 index 0000000..38b5fd2 --- /dev/null +++ b/data/Test427.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = + mweroiuxlskdfjlksj + + mweroiuxlskdfjlksj + + mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj diff --git a/data/Test428.hs b/data/Test428.hs new file mode 100644 index 0000000..ab8bc90 --- /dev/null +++ b/data/Test428.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = 1 +func = "abc" +func = 1.1e5 +func = 'x' +func = 981409823458910394810928414192837123987123987123 diff --git a/data/Test429.hs b/data/Test429.hs new file mode 100644 index 0000000..6fcf5ea --- /dev/null +++ b/data/Test429.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +{-# LANGUAGE LambdaCase #-} +func = \case + FooBar -> x + Baz -> y diff --git a/data/Test43.hs b/data/Test43.hs new file mode 100644 index 0000000..83572d8 --- /dev/null +++ b/data/Test43.hs @@ -0,0 +1,4 @@ +func = f + where + {-# INLINE [~1] f #-} + f = id diff --git a/data/Test430.hs b/data/Test430.hs new file mode 100644 index 0000000..3efc267 --- /dev/null +++ b/data/Test430.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = \x -> abc +describe "app" $ do diff --git a/data/Test431.hs b/data/Test431.hs new file mode 100644 index 0000000..c1c1c58 --- /dev/null +++ b/data/Test431.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = klajsdas klajsdas klajsdas diff --git a/data/Test432.hs b/data/Test432.hs new file mode 100644 index 0000000..aa2b380 --- /dev/null +++ b/data/Test432.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd diff --git a/data/Test433.hs b/data/Test433.hs new file mode 100644 index 0000000..851e5cb --- /dev/null +++ b/data/Test433.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + lakjsdlajsdljas + lakjsdlajsdljas + lakjsdlajsdljas diff --git a/data/Test434.hs b/data/Test434.hs new file mode 100644 index 0000000..f52edc1 --- /dev/null +++ b/data/Test434.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = (1 +) diff --git a/data/Test435.hs b/data/Test435.hs new file mode 100644 index 0000000..09d341e --- /dev/null +++ b/data/Test435.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = (+ 1) diff --git a/data/Test436.hs b/data/Test436.hs new file mode 100644 index 0000000..25a7bda --- /dev/null +++ b/data/Test436.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = (1 `abc`) diff --git a/data/Test437.hs b/data/Test437.hs new file mode 100644 index 0000000..3c56cf8 --- /dev/null +++ b/data/Test437.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = (`abc` 1) diff --git a/data/Test438.hs b/data/Test438.hs new file mode 100644 index 0000000..a9c30d5 --- /dev/null +++ b/data/Test438.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = (abc, def) diff --git a/data/Test439.hs b/data/Test439.hs new file mode 100644 index 0000000..90cb29d --- /dev/null +++ b/data/Test439.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = + ( lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + , lakjsdlajsdljasdlkjasldjasldjasldjalsdjlaskjd + ) diff --git a/data/Test44.hs b/data/Test44.hs new file mode 100644 index 0000000..7dd43f0 --- /dev/null +++ b/data/Test44.hs @@ -0,0 +1,2 @@ +data Foo = Bar {} +data Biz = Baz diff --git a/data/Test440.hs b/data/Test440.hs new file mode 100644 index 0000000..0d46933 --- /dev/null +++ b/data/Test440.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +foo = + let longIdentifierForShortValue = 1 + in longIdentifierForShortValue + longIdentifierForShortValue diff --git a/data/Test441.hs b/data/Test441.hs new file mode 100644 index 0000000..6a77a85 --- /dev/null +++ b/data/Test441.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = do + stmt + stmt diff --git a/data/Test442.hs b/data/Test442.hs new file mode 100644 index 0000000..3ab95e7 --- /dev/null +++ b/data/Test442.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = do + x <- stmt + stmt x diff --git a/data/Test443.hs b/data/Test443.hs new file mode 100644 index 0000000..c832f21 --- /dev/null +++ b/data/Test443.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = do + let x = 13 + stmt x diff --git a/data/Test444.hs b/data/Test444.hs new file mode 100644 index 0000000..31b1cc7 --- /dev/null +++ b/data/Test444.hs @@ -0,0 +1,8 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = + foooooo + $ [ case + foooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo + of + _ -> True + ] diff --git a/data/Test445.hs b/data/Test445.hs new file mode 100644 index 0000000..c3f325f --- /dev/null +++ b/data/Test445.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +{-# LANGUAGE MultiWayIf #-} +func = if + | cond1 -> loooooooooooooooooooooooooooooong expr1 + | cond2 -> loooooooooooooooooooooooooooooong expr2 diff --git a/data/Test446.hs b/data/Test446.hs new file mode 100644 index 0000000..4d8efd2 --- /dev/null +++ b/data/Test446.hs @@ -0,0 +1,7 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +{-# LANGUAGE MultiWayIf #-} +func = do + foo + bar $ if + | cond1 -> loooooooooooooooooooooooooooooong expr1 + | cond2 -> loooooooooooooooooooooooooooooong expr2 diff --git a/data/Test447.hs b/data/Test447.hs new file mode 100644 index 0000000..6e718f0 --- /dev/null +++ b/data/Test447.hs @@ -0,0 +1,7 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = + foo + $ [ aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + , bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb + ] + ++ [ccccccccccccccccccccccccccccccccccccccccccccccccccccccccc] diff --git a/data/Test448.hs b/data/Test448.hs new file mode 100644 index 0000000..3884989 --- /dev/null +++ b/data/Test448.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +module Main where diff --git a/data/Test449.hs b/data/Test449.hs new file mode 100644 index 0000000..7a6295f --- /dev/null +++ b/data/Test449.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +module Main () where diff --git a/data/Test45.hs b/data/Test45.hs new file mode 100644 index 0000000..d1c8c85 --- /dev/null +++ b/data/Test45.hs @@ -0,0 +1,3 @@ +data Foo = Bar + { foo :: Baz + } diff --git a/data/Test450.hs b/data/Test450.hs new file mode 100644 index 0000000..89316b0 --- /dev/null +++ b/data/Test450.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +module Main (main) where diff --git a/data/Test451.hs b/data/Test451.hs new file mode 100644 index 0000000..a55d851 --- /dev/null +++ b/data/Test451.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +module Main (main, test1, test2) where diff --git a/data/Test452.hs b/data/Test452.hs new file mode 100644 index 0000000..4fe8cbf --- /dev/null +++ b/data/Test452.hs @@ -0,0 +1,13 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +module Main + ( main + , test1 + , test2 + , test3 + , test4 + , test5 + , test6 + , test7 + , test8 + , test9 + ) where diff --git a/data/Test453.hs b/data/Test453.hs new file mode 100644 index 0000000..eaeb665 --- /dev/null +++ b/data/Test453.hs @@ -0,0 +1,13 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +module Main + ( main + -- main + , test1 + , test2 + -- Test 3 + , test3 + , test4 + -- Test 5 + , test5 + -- Test 6 + ) where diff --git a/data/Test454.hs b/data/Test454.hs new file mode 100644 index 0000000..c2e7a8e --- /dev/null +++ b/data/Test454.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +module Main (Test(..)) where diff --git a/data/Test455.hs b/data/Test455.hs new file mode 100644 index 0000000..6191afd --- /dev/null +++ b/data/Test455.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +module Main (module Main) where diff --git a/data/Test456.hs b/data/Test456.hs new file mode 100644 index 0000000..3d9694b --- /dev/null +++ b/data/Test456.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +module Main (Test(Test, a, b)) where diff --git a/data/Test457.hs b/data/Test457.hs new file mode 100644 index 0000000..82a8e14 --- /dev/null +++ b/data/Test457.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +module Main (Test()) where diff --git a/data/Test458.hs b/data/Test458.hs new file mode 100644 index 0000000..df50e76 --- /dev/null +++ b/data/Test458.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +-- Intentionally left empty diff --git a/data/Test459.hs b/data/Test459.hs new file mode 100644 index 0000000..0dea4be --- /dev/null +++ b/data/Test459.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import Data.List diff --git a/data/Test46.hs b/data/Test46.hs new file mode 100644 index 0000000..2472782 --- /dev/null +++ b/data/Test46.hs @@ -0,0 +1,3 @@ +data Foo = Bar + { foo, bar :: Baz + } diff --git a/data/Test460.hs b/data/Test460.hs new file mode 100644 index 0000000..50b8621 --- /dev/null +++ b/data/Test460.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import Data.List as L diff --git a/data/Test461.hs b/data/Test461.hs new file mode 100644 index 0000000..835646b --- /dev/null +++ b/data/Test461.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import qualified Data.List diff --git a/data/Test462.hs b/data/Test462.hs new file mode 100644 index 0000000..7e772a5 --- /dev/null +++ b/data/Test462.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import qualified Data.List as L diff --git a/data/Test463.hs b/data/Test463.hs new file mode 100644 index 0000000..1bfa264 --- /dev/null +++ b/data/Test463.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import safe Data.List as L diff --git a/data/Test464.hs b/data/Test464.hs new file mode 100644 index 0000000..53fad4c --- /dev/null +++ b/data/Test464.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import {-# SOURCE #-} Data.List () diff --git a/data/Test465.hs b/data/Test465.hs new file mode 100644 index 0000000..8e5b381 --- /dev/null +++ b/data/Test465.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import safe qualified Data.List hiding (nub) diff --git a/data/Test466.hs b/data/Test466.hs new file mode 100644 index 0000000..73046d6 --- /dev/null +++ b/data/Test466.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import {-# SOURCE #-} safe qualified Data.List diff --git a/data/Test467.hs b/data/Test467.hs new file mode 100644 index 0000000..7745833 --- /dev/null +++ b/data/Test467.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import qualified "base" Data.List diff --git a/data/Test468.hs b/data/Test468.hs new file mode 100644 index 0000000..2c704b4 --- /dev/null +++ b/data/Test468.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import {-# SOURCE #-} safe qualified "base" Data.List as L +import {-# SOURCE #-} safe qualified "base" Data.List () +import {-# SOURCE #-} safe qualified Data.List hiding () diff --git a/data/Test469.hs b/data/Test469.hs new file mode 100644 index 0000000..fa53576 --- /dev/null +++ b/data/Test469.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import qualified Data.List () diff --git a/data/Test47.hs b/data/Test47.hs new file mode 100644 index 0000000..2dbac94 --- /dev/null +++ b/data/Test47.hs @@ -0,0 +1,4 @@ +data Foo = Bar + { foo :: Baz + , bars :: Bizzz + } diff --git a/data/Test470.hs b/data/Test470.hs new file mode 100644 index 0000000..97ce770 --- /dev/null +++ b/data/Test470.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import Data.List (nub) diff --git a/data/Test471.hs b/data/Test471.hs new file mode 100644 index 0000000..fb499b1 --- /dev/null +++ b/data/Test471.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import Data.List (foldl', indexElem, nub) diff --git a/data/Test472.hs b/data/Test472.hs new file mode 100644 index 0000000..39cfd67 --- /dev/null +++ b/data/Test472.hs @@ -0,0 +1,16 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import Test + ( Long + , anymore + , fit + , items + , line + , list + , not + , onA + , quite + , single + , that + , will + , with + ) diff --git a/data/Test473.hs b/data/Test473.hs new file mode 100644 index 0000000..016a6b7 --- /dev/null +++ b/data/Test473.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import Test ((+), T, T2(), T3(..), T4(T4), T5(T5, t5), T6((<|>))) diff --git a/data/Test474.hs b/data/Test474.hs new file mode 100644 index 0000000..1716691 --- /dev/null +++ b/data/Test474.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import Test hiding () +import Test as T hiding () diff --git a/data/Test475.hs b/data/Test475.hs new file mode 100644 index 0000000..adbfb6e --- /dev/null +++ b/data/Test475.hs @@ -0,0 +1,15 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import Prelude as X + hiding + ( head + , init + , last + , maximum + , minimum + , pred + , read + , readFile + , succ + , tail + , undefined + ) diff --git a/data/Test476.hs b/data/Test476.hs new file mode 100644 index 0000000..900fb1f --- /dev/null +++ b/data/Test476.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import MoreThanSufficientlyLongModuleNameWithSome + (compact, fit, inA, items, layout, not, that, will) +import TestJustAbitToLongModuleNameLikeThisOneIs () +import TestJustShortEnoughModuleNameLikeThisOne () diff --git a/data/Test477.hs b/data/Test477.hs new file mode 100644 index 0000000..0f32c77 --- /dev/null +++ b/data/Test477.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import TestJustAbitToLongModuleNameLikeThisOneI as T +import TestJustShortEnoughModuleNameLikeThisOn as T diff --git a/data/Test478.hs b/data/Test478.hs new file mode 100644 index 0000000..3c047b9 --- /dev/null +++ b/data/Test478.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import TestJustAbitToLongModuleNameLikeTh hiding () +import TestJustShortEnoughModuleNameLike hiding () diff --git a/data/Test479.hs b/data/Test479.hs new file mode 100644 index 0000000..3e8adc0 --- /dev/null +++ b/data/Test479.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import MoreThanSufficientlyLongModuleNameWithSome + (compact, fit, inA, items, layout, not, that, will) diff --git a/data/Test48.hs b/data/Test48.hs new file mode 100644 index 0000000..56c5cba --- /dev/null +++ b/data/Test48.hs @@ -0,0 +1,4 @@ +data Foo = Bar + { foo, biz :: Baz + , bar :: Bizzz + } diff --git a/data/Test480.hs b/data/Test480.hs new file mode 100644 index 0000000..4bc1c0c --- /dev/null +++ b/data/Test480.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import TestJustShortEnoughModuleNameLike hiding (abc, def, ghci, jklm) diff --git a/data/Test481.hs b/data/Test481.hs new file mode 100644 index 0000000..b6f7509 --- /dev/null +++ b/data/Test481.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +-- Test +import Data.List (nub) -- Test +{- Test -} +import qualified Data.List as L (foldl') {- Test -} diff --git a/data/Test482.hs b/data/Test482.hs new file mode 100644 index 0000000..4fd065e --- /dev/null +++ b/data/Test482.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import Test + ( abc + , def + -- comment + ) diff --git a/data/Test483.hs b/data/Test483.hs new file mode 100644 index 0000000..5a03da5 --- /dev/null +++ b/data/Test483.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import Test + ( abc + -- comment + ) diff --git a/data/Test484.hs b/data/Test484.hs new file mode 100644 index 0000000..7749c61 --- /dev/null +++ b/data/Test484.hs @@ -0,0 +1,12 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import Test + ( abc + -- comment + , def + , ghi + {- comment -} + , jkl + -- comment + ) +-- Test +import Test (test) diff --git a/data/Test485.hs b/data/Test485.hs new file mode 100644 index 0000000..a1879a2 --- /dev/null +++ b/data/Test485.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import Test + ( -- comment + ) diff --git a/data/Test486.hs b/data/Test486.hs new file mode 100644 index 0000000..e66d47a --- /dev/null +++ b/data/Test486.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import Test (longbindingNameThatoverflowsColum) +import Test (Long(List, Of, Things)) diff --git a/data/Test487.hs b/data/Test487.hs new file mode 100644 index 0000000..4fa860d --- /dev/null +++ b/data/Test487.hs @@ -0,0 +1,27 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import Test + ( Thing + ( With + -- Comments + , and + -- also + , items + -- ! + ) + ) +import Test + ( Thing + ( Item + -- and Comment + ) + ) +import Test + ( Thing + ( With + -- Comments + , and + -- also + , items + -- ! + ) + ) diff --git a/data/Test488.hs b/data/Test488.hs new file mode 100644 index 0000000..f65f0d6 --- /dev/null +++ b/data/Test488.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +import VeryLongModuleNameThatCouldEvenCauseAnEmptyBindingListToExpandIntoMultipleLine + () diff --git a/data/Test489.hs b/data/Test489.hs new file mode 100644 index 0000000..f16fa76 --- /dev/null +++ b/data/Test489.hs @@ -0,0 +1,25 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +{-# LANGUAGE BangPatterns #-} +{- + - Test module + -} +module Test + ( test1 + -- ^ test + , test2 + -- | test + , test3 + , test4 + , test5 + , test6 + , test7 + , test8 + , test9 + , test10 + ) where +-- Test +import Data.List (nub) -- Test +{- Test -} +import qualified Data.List as L (foldl') {- Test -} +-- Test +import Test (test) diff --git a/data/Test49.hs b/data/Test49.hs new file mode 100644 index 0000000..3b236c6 --- /dev/null +++ b/data/Test49.hs @@ -0,0 +1,5 @@ +data Foo = Bar + { fooz :: Baz + , bar :: Bizzz + } + deriving Show diff --git a/data/Test490.hs b/data/Test490.hs new file mode 100644 index 0000000..0cf1f73 --- /dev/null +++ b/data/Test490.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = do + abc <- foo +--abc +return () diff --git a/data/Test491.hs b/data/Test491.hs new file mode 100644 index 0000000..b625fed --- /dev/null +++ b/data/Test491.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = (()) diff --git a/data/Test492.hs b/data/Test492.hs new file mode 100644 index 0000000..2585e2d --- /dev/null +++ b/data/Test492.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = do + let + foo True = True + foo _ = False + return () diff --git a/data/Test493.hs b/data/Test493.hs new file mode 100644 index 0000000..2585e2d --- /dev/null +++ b/data/Test493.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = do + let + foo True = True + foo _ = False + return () diff --git a/data/Test494.hs b/data/Test494.hs new file mode 100644 index 0000000..872a368 --- /dev/null +++ b/data/Test494.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = do + let + foo = True + b = False + return () diff --git a/data/Test495.hs b/data/Test495.hs new file mode 100644 index 0000000..43d52fe --- /dev/null +++ b/data/Test495.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = + let + foo = True + b = False + in return () diff --git a/data/Test496.hs b/data/Test496.hs new file mode 100644 index 0000000..d06ea75 --- /dev/null +++ b/data/Test496.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = do + s <- mGet + mSet $ s { _lstate_indent = _lstate_indent state } diff --git a/data/Test497.hs b/data/Test497.hs new file mode 100644 index 0000000..f862333 --- /dev/null +++ b/data/Test497.hs @@ -0,0 +1,7 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = do + s <- mGet + mSet $ s + { _lstate_indent = _lstate_indent state + , _lstate_foo = _lstate_foo state + } diff --git a/data/Test498.hs b/data/Test498.hs new file mode 100644 index 0000000..52505be --- /dev/null +++ b/data/Test498.hs @@ -0,0 +1,7 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = do + s <- mGet + mSet $ s + { _lstate_indent = _lstate_indent lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + , _lstate_foo = _lstate_foo kasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + } diff --git a/data/Test499.hs b/data/Test499.hs new file mode 100644 index 0000000..7362219 --- /dev/null +++ b/data/Test499.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = Foo { _lstate_indent = _lstate_indent state } diff --git a/data/Test5.hs b/data/Test5.hs new file mode 100644 index 0000000..71a352d --- /dev/null +++ b/data/Test5.hs @@ -0,0 +1 @@ +func :: (a -> a) -> a diff --git a/data/Test50.hs b/data/Test50.hs new file mode 100644 index 0000000..f249e56 --- /dev/null +++ b/data/Test50.hs @@ -0,0 +1,8 @@ +data MyRecord = MyConstructor + { bar1, bar2 + :: Loooooooooooooooooooooooooooooooong + -> Loooooooooooooooooooooooooooooooong + , foo1, foo2 + :: Loooooooooooooooooooooooooooooooonger + -> Loooooooooooooooooooooooooooooooonger + } diff --git a/data/Test500.hs b/data/Test500.hs new file mode 100644 index 0000000..9b188e5 --- /dev/null +++ b/data/Test500.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = Foo + { _lstate_indent = _lstate_indent lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + , _lstate_foo = _lstate_foo lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + } diff --git a/data/Test501.hs b/data/Test501.hs new file mode 100644 index 0000000..1cac41f --- /dev/null +++ b/data/Test501.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = do + Foo + { _lstate_indent = _lstate_indent lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + , _lstate_foo = _lstate_foo lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + } diff --git a/data/Test502.hs b/data/Test502.hs new file mode 100644 index 0000000..2482992 --- /dev/null +++ b/data/Test502.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = do +-- abc + -- def + return () diff --git a/data/Test503.hs b/data/Test503.hs new file mode 100644 index 0000000..36aa1f1 --- /dev/null +++ b/data/Test503.hs @@ -0,0 +1,7 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = do + do + return () + -- abc + -- def + return () diff --git a/data/Test504.hs b/data/Test504.hs new file mode 100644 index 0000000..3c3d575 --- /dev/null +++ b/data/Test504.hs @@ -0,0 +1,7 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func + :: Int -- basic indentation amount + -> Int -- currently used width in current line (after indent) + -- used to accurately calc placing of the current-line + -> LayoutDesc + -> Int diff --git a/data/Test505.hs b/data/Test505.hs new file mode 100644 index 0000000..0157f35 --- /dev/null +++ b/data/Test505.hs @@ -0,0 +1,8 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = + (lkjadljasldjalskdjaldjalsdjkalsdjlaksdjlasjdlajsaldskj + $ abc + $ def + $ ghi + $ jkl + ) diff --git a/data/Test506.hs b/data/Test506.hs new file mode 100644 index 0000000..ed27504 --- /dev/null +++ b/data/Test506.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +buildG bounds0 edges0 = accumArray (flip (:)) [] bounds0 (map reassoc edges0) + where reassoc (v, e, w) = (v, (e, w)) diff --git a/data/Test507.hs b/data/Test507.hs new file mode 100644 index 0000000..1795543 --- /dev/null +++ b/data/Test507.hs @@ -0,0 +1,5 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +downloadRepoPackage = case repo of + RepoLocal {..} -> return () + RepoLocal { abc } -> return () + RepoLocal{} -> return () diff --git a/data/Test508.hs b/data/Test508.hs new file mode 100644 index 0000000..5ecfcc9 --- /dev/null +++ b/data/Test508.hs @@ -0,0 +1,8 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = do + let + (primaryPkg, otherPkgs) = selectPrimaryLocalPackage pwd pkgs' + (bproblems, x) = resolveBuildTargets primaryPkg otherPkgs utargets'' + -- default local dir target if there's no given target + utargets'' = "foo" + return () diff --git a/data/Test509.hs b/data/Test509.hs new file mode 100644 index 0000000..f66ac30 --- /dev/null +++ b/data/Test509.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = + [ (thing, take 10 alts) --TODO: select best ones + | (thing, _got, alts@(_ : _)) <- nosuchFooThing + , gast <- award + ] diff --git a/data/Test51.hs b/data/Test51.hs new file mode 100644 index 0000000..ba064e1 --- /dev/null +++ b/data/Test51.hs @@ -0,0 +1,13 @@ +{-# LANGUAGE DatatypeContexts #-} +data + ( LooooooooooooooooooooongConstraint a + , LooooooooooooooooooooongConstraint b + ) => + MyRecord a b + = MyConstructor + { foo1, foo2 + :: loooooooooooooooooooooooooooooooong + -> loooooooooooooooooooooooooooooooong + , bar :: a + , bazz :: b + } diff --git a/data/Test510.hs b/data/Test510.hs new file mode 100644 index 0000000..e939f8f --- /dev/null +++ b/data/Test510.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = if x + then if y -- y is important + then foo + else bar + else Nothing diff --git a/data/Test511.hs b/data/Test511.hs new file mode 100644 index 0000000..fcc4b7c --- /dev/null +++ b/data/Test511.hs @@ -0,0 +1,8 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +wrapPatPrepend pat prepElem = do + patDocs <- layoutPat pat + case Seq.viewl patDocs of + Seq.EmptyL -> return $ Seq.empty + x1 Seq.:< xR -> do + x1' <- docSeq [prepElem, return x1] + return $ x1' Seq.<| xR diff --git a/data/Test512.hs b/data/Test512.hs new file mode 100644 index 0000000..721607a --- /dev/null +++ b/data/Test512.hs @@ -0,0 +1,7 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +layoutWriteNewlineBlock + :: ( MonadMultiWriter Text.Builder.Builder m + , MonadMultiState LayoutState m + , MonadMultiWriter (Seq String) m + ) + => m () diff --git a/data/Test513.hs b/data/Test513.hs new file mode 100644 index 0000000..19308aa --- /dev/null +++ b/data/Test513.hs @@ -0,0 +1,25 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +{-# LANGUAGE MultiWayIf #-} +readMergePersConfig path shouldCreate conf = do + exists <- liftIO $ System.Directory.doesFileExist path + if + | exists -> do + contents <- liftIO $ ByteString.readFile path -- no lazy IO, tyvm. + fileConf <- case Data.Yaml.decodeEither contents of + Left e -> do + liftIO + $ putStrErrLn + $ "error reading in brittany config from " + ++ path + ++ ":" + liftIO $ putStrErrLn e + mzero + Right x -> return x + return $ fileConf Semigroup.<> conf + | shouldCreate -> do + liftIO $ ByteString.writeFile path $ Data.Yaml.encode $ cMap + (Option . Just . runIdentity) + staticDefaultConfig + return $ conf + | otherwise -> do + return conf diff --git a/data/Test514.hs b/data/Test514.hs new file mode 100644 index 0000000..8dcc5a1 --- /dev/null +++ b/data/Test514.hs @@ -0,0 +1,13 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = BuildReport + where + convertInstallOutcome = case result of + Left BR.PlanningFailed -> PlanningFailed + Left (BR.DependentFailed p) -> DependencyFailed p + Left (BR.DownloadFailed _) -> DownloadFailed + Left (BR.UnpackFailed _) -> UnpackFailed + Left (BR.ConfigureFailed _) -> ConfigureFailed + Left (BR.BuildFailed _) -> BuildFailed + Left (BR.TestsFailed _) -> TestsFailed + Left (BR.InstallFailed _) -> InstallFailed + Right (BR.BuildOk _ _ _) -> InstallOk diff --git a/data/Test515.hs b/data/Test515.hs new file mode 100644 index 0000000..8dcc5a1 --- /dev/null +++ b/data/Test515.hs @@ -0,0 +1,13 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = BuildReport + where + convertInstallOutcome = case result of + Left BR.PlanningFailed -> PlanningFailed + Left (BR.DependentFailed p) -> DependencyFailed p + Left (BR.DownloadFailed _) -> DownloadFailed + Left (BR.UnpackFailed _) -> UnpackFailed + Left (BR.ConfigureFailed _) -> ConfigureFailed + Left (BR.BuildFailed _) -> BuildFailed + Left (BR.TestsFailed _) -> TestsFailed + Left (BR.InstallFailed _) -> InstallFailed + Right (BR.BuildOk _ _ _) -> InstallOk diff --git a/data/Test516.hs b/data/Test516.hs new file mode 100644 index 0000000..ccf86e7 --- /dev/null +++ b/data/Test516.hs @@ -0,0 +1,37 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +showPackageDetailedInfo pkginfo = + renderStyle (style { lineLength = 80, ribbonsPerLine = 1 }) + $ char '*' + $+$ something + [ entry "Synopsis" synopsis hideIfNull reflowParagraphs + , entry + "Versions available" + sourceVersions + (altText null "[ Not available from server ]") + (dispTopVersions 9 (preferredVersions pkginfo)) + , entry + "Versions installed" + installedVersions + (altText + null + (if hasLib pkginfo then "[ Not installed ]" else "[ Unknown ]") + ) + (dispTopVersions 4 (preferredVersions pkginfo)) + , entry "Homepage" homepage orNotSpecified text + , entry "Bug reports" bugReports orNotSpecified text + , entry "Description" description hideIfNull reflowParagraphs + , entry "Category" category hideIfNull text + , entry "License" license alwaysShow disp + , entry "Author" author hideIfNull reflowLines + , entry "Maintainer" maintainer hideIfNull reflowLines + , entry "Source repo" sourceRepo orNotSpecified text + , entry "Executables" executables hideIfNull (commaSep text) + , entry "Flags" flags hideIfNull (commaSep dispFlag) + , entry "Dependencies" dependencies hideIfNull (commaSep dispExtDep) + , entry "Documentation" haddockHtml showIfInstalled text + , entry "Cached" haveTarball alwaysShow dispYesNo + , if not (hasLib pkginfo) + then empty + else text "Modules:" + $+$ nest 4 (vcat (map disp . sort . modules $ pkginfo)) + ] diff --git a/data/Test517.hs b/data/Test517.hs new file mode 100644 index 0000000..5b5926c --- /dev/null +++ b/data/Test517.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +isValidPosition position + | validX && validY = Just position + | otherwise = Nothing diff --git a/data/Test518.hs b/data/Test518.hs new file mode 100644 index 0000000..5583847 --- /dev/null +++ b/data/Test518.hs @@ -0,0 +1,7 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +foo = Reflex.runSpiderHost $ ReflexHost.hostApp $ do + (inputEvent :: Reflex.Event Reflex.Spider String, inputFire :: String + -> IO Bool) <- + ReflexHost.newExternalEvent + liftIO . forkIO . forever $ getLine >>= inputFire + ReflexHost.performEvent_ $ fmap (liftIO . putStrLn) inputEvent diff --git a/data/Test519.hs b/data/Test519.hs new file mode 100644 index 0000000..88cd872 --- /dev/null +++ b/data/Test519.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +-- Test.hs +module Test where +data X = X diff --git a/data/Test52.hs b/data/Test52.hs new file mode 100644 index 0000000..a8b49da --- /dev/null +++ b/data/Test52.hs @@ -0,0 +1,5 @@ +{-# LANGUAGE ScopedTypeVariables #-} +-- brittany { lconfig_allowSinglelineRecord: true } +data MyRecord = forall a . Show a => Bar + { foo :: abittoolongbutnotvery -> abittoolongbutnotvery + } diff --git a/data/Test520.hs b/data/Test520.hs new file mode 100644 index 0000000..d9dac4b --- /dev/null +++ b/data/Test520.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +foldrDesc f z = unSwitchQueue $ \q -> + switch (Min.foldrDesc (f unTaggedF) z q) (Min.foldrAsc (f unTaggedF) z q) diff --git a/data/Test521.hs b/data/Test521.hs new file mode 100644 index 0000000..ff6208b --- /dev/null +++ b/data/Test521.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +autocheckCases = + [ ("Never Deadlocks", representative deadlocksNever) + , ("No Exceptions", representative exceptionsNever) + , ("Consistent Result", alwaysSame) -- already representative + ] diff --git a/data/Test522.hs b/data/Test522.hs new file mode 100644 index 0000000..d3c2fb0 --- /dev/null +++ b/data/Test522.hs @@ -0,0 +1,8 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +autocheckCases = + [ ("Never Deadlocks", representative deadlocksNever) + , ("No Exceptions", representative exceptionsNever) + , ( "Consistent Result" + , alwaysSame -- already representative + ) + ] diff --git a/data/Test523.hs b/data/Test523.hs new file mode 100644 index 0000000..78897cd --- /dev/null +++ b/data/Test523.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = + [ (abc, (1111, 1111)) + , (def, (2, 2)) + , foo -- comment + ] diff --git a/data/Test524.hs b/data/Test524.hs new file mode 100644 index 0000000..0aeb4a8 --- /dev/null +++ b/data/Test524.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +foo a b = g a b -- fooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo + where g a b = b + b * a diff --git a/data/Test525.hs b/data/Test525.hs new file mode 100644 index 0000000..74d9df7 --- /dev/null +++ b/data/Test525.hs @@ -0,0 +1,2 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +foo a b = g a b where g a b = b + b * a -- fooooooooooooooooooooooooooooooooooo diff --git a/data/Test526.hs b/data/Test526.hs new file mode 100644 index 0000000..ae6bb6a --- /dev/null +++ b/data/Test526.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = do + abc <- expr + abcccccccccccccccccc <- expr + abcccccccccccccccccccccccccccccccccccccccccc <- expr + abccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc <- expr diff --git a/data/Test527.hs b/data/Test527.hs new file mode 100644 index 0000000..f3664cd --- /dev/null +++ b/data/Test527.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func (MyLongFoo abc def) = 1 +func (Bar a d) = 2 +func _ = 3 diff --git a/data/Test528.hs b/data/Test528.hs new file mode 100644 index 0000000..2867ab4 --- /dev/null +++ b/data/Test528.hs @@ -0,0 +1,15 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +parserCompactLocation = + [ try + $ [ ParseRelAbs (Text.Read.read digits) _ _ + | digits <- many1 digit + , rel1 :: Maybe (Either Int (Ratio Int)) <- optionMaybe + [ case divPart of + Nothing -> Left $ Text.Read.read digits + Just ddigits -> + Right $ Text.Read.read digits % Text.Read.read ddigits + | digits <- many1 digit + , divPart <- optionMaybe (string "/" *> many1 digit) + ] + ] + ] diff --git a/data/Test529.hs b/data/Test529.hs new file mode 100644 index 0000000..f2b42a8 --- /dev/null +++ b/data/Test529.hs @@ -0,0 +1,4 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = fooooooooooooooooooooooooooooooooo $ foooooooooooooooooooooooooooooooo + foooooooooooooooooooooooooooooooo + foooooooooooooooooooooooooooooooo diff --git a/data/Test53.hs b/data/Test53.hs new file mode 100644 index 0000000..82be3f3 --- /dev/null +++ b/data/Test53.hs @@ -0,0 +1,7 @@ +{-# LANGUAGE ScopedTypeVariables #-} +data MyRecord + = forall a + . LooooooooooooooooooooongConstraint a => + LoooooooooooongConstructor + { foo :: abittoolongbutnotvery -> abittoolongbutnotvery + } diff --git a/data/Test530.hs b/data/Test530.hs new file mode 100644 index 0000000..ae12740 --- /dev/null +++ b/data/Test530.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = + fooooooooooooooooooooooooooooooooo + + foooooooooooooooooooooooooooooooo + foooooooooooooooooooooooooooooooo + foooooooooooooooooooooooooooooooo diff --git a/data/Test531.hs b/data/Test531.hs new file mode 100644 index 0000000..fc1335c --- /dev/null +++ b/data/Test531.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +func = fooooooooooooooooooooooooooooooooo + foooooooooooooooooooooooooooooooo + [ foooooooooooooooooooooooooooooooo + , foooooooooooooooooooooooooooooooo + , foooooooooooooooooooooooooooooooo + ] diff --git a/data/Test532.hs b/data/Test532.hs new file mode 100644 index 0000000..fcda0ed --- /dev/null +++ b/data/Test532.hs @@ -0,0 +1,20 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +parserPrim = + [ r + | r <- + [ SGPPrimFloat $ bool id (0 -) minus $ readGnok + "parserPrim" + (d1 ++ d2 ++ d3 ++ d4) + | d2 <- string "." + , d3 <- many1 (oneOf "0123456789") + , _ <- string "f" + ] + <|> [ SGPPrimFloat $ bool id (0 -) minus $ fromIntegral + (readGnok "parserPrim" d1 :: Integer) + | _ <- string "f" + ] + <|> [ SGPPrimInt $ bool id (0 -) minus $ fromIntegral + (readGnok "parserPrim" d1 :: Integer) + | _ <- string "i" + ] + ] diff --git a/data/Test533.hs b/data/Test533.hs new file mode 100644 index 0000000..3f54efe --- /dev/null +++ b/data/Test533.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +samples = (SV.unpackaaaaadat) <&> \f -> + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa diff --git a/data/Test534.hs b/data/Test534.hs new file mode 100644 index 0000000..33c5182 --- /dev/null +++ b/data/Test534.hs @@ -0,0 +1,11 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +runBrittany tabSize text = do + let + config' = staticDefaultConfig + config = config' + { _conf_layout = (_conf_layout config') + { _lconfig_indentAmount = coerce tabSize + } + , _conf_forward = forwardOptionsSyntaxExtsEnabled + } + parsePrintModule config text diff --git a/data/Test535.hs b/data/Test535.hs new file mode 100644 index 0000000..cb2da37 --- /dev/null +++ b/data/Test535.hs @@ -0,0 +1,3 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +{-# LANGUAGE TypeApplications #-} +foo = bar @Baz diff --git a/data/Test536.hs b/data/Test536.hs new file mode 100644 index 0000000..8674ebf --- /dev/null +++ b/data/Test536.hs @@ -0,0 +1,51 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +{-# LANGUAGE TypeApplications #-} +layoutPatternBindFinal alignmentToken binderDoc mPatDoc clauseDocs = do + docAlt + $ -- one-line solution + [ docCols + (ColBindingLine alignmentToken) + [ docSeq (patPartInline ++ [guardPart]) + , docSeq + [ appSep $ return binderDoc + , docForceSingleline $ return body + , wherePart + ] + ] + | not hasComments + , [(guards, body, _bodyRaw)] <- [clauseDocs] + , let guardPart = singleLineGuardsDoc guards + , wherePart <- case mWhereDocs of + Nothing -> return @[] $ docEmpty + Just [w] -> return @[] $ docSeq + [ docSeparator + , appSep $ docLit $ Text.pack "where" + , docSetIndentLevel $ docForceSingleline $ return w + ] + _ -> [] + ] + ++ -- one-line solution + where in next line(s) + [ docLines + $ [ docCols + (ColBindingLine alignmentToken) + [ docSeq (patPartInline ++ [guardPart]) + , docSeq + [appSep $ return binderDoc, docForceParSpacing $ return body] + ] + ] + ++ wherePartMultiLine + | [(guards, body, _bodyRaw)] <- [clauseDocs] + , let guardPart = singleLineGuardsDoc guards + , Data.Maybe.isJust mWhereDocs + ] + ++ -- two-line solution + where in next line(s) + [ docLines + $ [ docForceSingleline + $ docSeq (patPartInline ++ [guardPart, return binderDoc]) + , docEnsureIndent BrIndentRegular $ docForceSingleline $ return + body + ] + ++ wherePartMultiLine + | [(guards, body, _bodyRaw)] <- [clauseDocs] + , let guardPart = singleLineGuardsDoc guards + ] diff --git a/data/Test537.hs b/data/Test537.hs new file mode 100644 index 0000000..12526a2 --- /dev/null +++ b/data/Test537.hs @@ -0,0 +1,11 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +{-# LANGUAGE MultiWayIf #-} +func = do + let + foo = if + | Constuctoooooooooooooooooooooooooooooooooooor `elem` artics -- TODO + -> max + (defLen - 0.2) -- TODO + (defLen * 0.8) + | otherwise -> max (defLen - 0.05) (defLen * 0.95) -- TODO + return True diff --git a/data/Test538.hs b/data/Test538.hs new file mode 100644 index 0000000..a527909 --- /dev/null +++ b/data/Test538.hs @@ -0,0 +1,6 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +foo n = case n of + 1 -> True + -1 -> False +bar n = case n of + (-2, -2) -> (-2, -2) diff --git a/data/Test539.hs b/data/Test539.hs new file mode 100644 index 0000000..7da39e1 --- /dev/null +++ b/data/Test539.hs @@ -0,0 +1,7 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +{-# LANGUAGE TypeApplications #-} +foo = + let + a = b @1 + cccc = () + in foo diff --git a/data/Test54.hs b/data/Test54.hs new file mode 100644 index 0000000..7d2cb1b --- /dev/null +++ b/data/Test54.hs @@ -0,0 +1,10 @@ +{-# LANGUAGE ScopedTypeVariables #-} +data MyRecord + = forall a b + . ( Loooooooooooooooooooooooooooooooong a + , Loooooooooooooooooooooooooooooooong b + ) => + MyConstructor + { a :: a + , b :: b + } diff --git a/data/Test540.hs b/data/Test540.hs new file mode 100644 index 0000000..936c1cd --- /dev/null +++ b/data/Test540.hs @@ -0,0 +1,14 @@ +-- brittany { lconfig_columnAlignMode: { tag: ColumnAlignModeDisabled }, lconfig_indentPolicy: IndentPolicyLeft } +record :: Record +record = Record + { rProperties = + [ "foo" .= "bar" + , "foo" .= "bar" + , "foo" .= "bar" + , "foo" .= "bar" + , "foo" .= "bar" + , "foo" .= "bar" + , "foo" .= "bar" + , "foo" .= "bar" + ] + } diff --git a/data/Test55.hs b/data/Test55.hs new file mode 100644 index 0000000..e49c0da --- /dev/null +++ b/data/Test55.hs @@ -0,0 +1,9 @@ +{-# LANGUAGE ScopedTypeVariables #-} +data MyStruct + = forall a b + . ( Loooooooooooooooooooooooooooooooong a + , Loooooooooooooooooooooooooooooooong b + ) => + MyConstructor (ToBriDocM BriDocNumbered) + (ToBriDocM BriDocNumbered) + (ToBriDocM BriDocNumbered) diff --git a/data/Test56.hs b/data/Test56.hs new file mode 100644 index 0000000..941107b --- /dev/null +++ b/data/Test56.hs @@ -0,0 +1,14 @@ +{-# LANGUAGE ScopedTypeVariables #-} +data MyRecord + = forall a b + . ( Loooooooooooooooooooooooooooooooong a + , Loooooooooooooooooooooooooooooooong b + ) => + MyConstructor + { foo, foo2 + :: loooooooooooooooooooooooooooooooong + -> loooooooooooooooooooooooooooooooong + , bar :: a + , bazz :: b + } + deriving Show diff --git a/data/Test57.hs b/data/Test57.hs new file mode 100644 index 0000000..6bcfc1b --- /dev/null +++ b/data/Test57.hs @@ -0,0 +1,5 @@ +data Foo = Bar + { foo :: Baz + , bars :: Bizzz + } + deriving (Show, Eq, Monad, Functor, Traversable, Foldable) diff --git a/data/Test58.hs b/data/Test58.hs new file mode 100644 index 0000000..6b228a2 --- /dev/null +++ b/data/Test58.hs @@ -0,0 +1,12 @@ +data Foo = Bar + { foo :: Baz + , bars :: Bizzz + } + deriving Show + deriving (Eq, Ord) + deriving stock Show + deriving stock (Eq, Ord) + deriving anyclass Show + deriving anyclass (Show, Eq, Monad, Functor) + deriving newtype Show + deriving newtype (Traversable, Foldable) diff --git a/data/Test59.hs b/data/Test59.hs new file mode 100644 index 0000000..5721ef0 --- /dev/null +++ b/data/Test59.hs @@ -0,0 +1,6 @@ +data Foo = Bar + { foo :: Baz + , bars :: Bizzz + } + deriving ToJSON via (SomeType) + deriving (ToJSON, FromJSON) via (SomeType) diff --git a/data/Test6.hs b/data/Test6.hs new file mode 100644 index 0000000..9bf7bb6 --- /dev/null +++ b/data/Test6.hs @@ -0,0 +1 @@ +func :: a -> (a -> a) diff --git a/data/Test60.hs b/data/Test60.hs new file mode 100644 index 0000000..79ccc7a --- /dev/null +++ b/data/Test60.hs @@ -0,0 +1,4 @@ +{-# LANGUAGE ExistentialQuantification #-} +data Foo = forall a . Show a => Bar + { foo :: a + } diff --git a/data/Test61.hs b/data/Test61.hs new file mode 100644 index 0000000..81d41bf --- /dev/null +++ b/data/Test61.hs @@ -0,0 +1,5 @@ +{-# LANGUAGE ExistentialQuantification #-} +data Foo = forall a b . (Show a, Eq b) => Bar + { foo :: a + , bars :: b + } diff --git a/data/Test62.hs b/data/Test62.hs new file mode 100644 index 0000000..8762559 --- /dev/null +++ b/data/Test62.hs @@ -0,0 +1,3 @@ +-- before +data MyData = MyData Int +-- after diff --git a/data/Test63.hs b/data/Test63.hs new file mode 100644 index 0000000..5532f33 --- /dev/null +++ b/data/Test63.hs @@ -0,0 +1,5 @@ +data MyRecord = MyRecord + { a :: Int + -- comment + , b :: Int + } diff --git a/data/Test64.hs b/data/Test64.hs new file mode 100644 index 0000000..0d37152 --- /dev/null +++ b/data/Test64.hs @@ -0,0 +1,5 @@ +data Foo = Bar -- a + { foo :: Baz -- b + , bars :: Bizzz -- c + } -- d + deriving (Show, Eq, Monad, Functor, Traversable, Foldable) -- e diff --git a/data/Test65.hs b/data/Test65.hs new file mode 100644 index 0000000..dd2506f --- /dev/null +++ b/data/Test65.hs @@ -0,0 +1,9 @@ +data Foo = Bar + { -- a + foo -- b + :: -- c + Baz -- d + , -- e + bars :: Bizzz + } + deriving (Show, Eq, Monad, Functor, Traversable, Foldable) diff --git a/data/Test66.hs b/data/Test66.hs new file mode 100644 index 0000000..3c7aeaa --- /dev/null +++ b/data/Test66.hs @@ -0,0 +1,11 @@ +data Foo = Bar + { foo :: Baz + , bars :: Bizzz + } + -- a + deriving --b + ( -- c + ToJSON -- d + , -- e + FromJSON --f + ) -- g diff --git a/data/Test67.hs b/data/Test67.hs new file mode 100644 index 0000000..a3a915b --- /dev/null +++ b/data/Test67.hs @@ -0,0 +1,13 @@ +data Foo = Bar + { foo :: Baz + , bars :: Bizzz + } + -- a + deriving --a + ToJSON --b + via -- c + ( -- d + SomeType --e + , -- f + ABC --g + ) diff --git a/data/Test68.hs b/data/Test68.hs new file mode 100644 index 0000000..0375bbb --- /dev/null +++ b/data/Test68.hs @@ -0,0 +1,8 @@ +{-# LANGUAGE ExistentialQuantification #-} +data MyRecord + -- test comment + = forall a b + . ( Loooooooooooooooooooooooooooooooong a + , Loooooooooooooooooooooooooooooooong b + ) => + MyConstructor a b diff --git a/data/Test69.hs b/data/Test69.hs new file mode 100644 index 0000000..a1759f1 --- /dev/null +++ b/data/Test69.hs @@ -0,0 +1,4 @@ +-- brittany {lconfig_indentPolicy: IndentPolicyLeft } +data EnterpriseGrantsForCompanyResponse = EnterpriseGrantsForCompanyResponse + Types.Company + [EnterpriseGrantResponse] diff --git a/data/Test7.hs b/data/Test7.hs new file mode 100644 index 0000000..6fd2b47 --- /dev/null +++ b/data/Test7.hs @@ -0,0 +1,2 @@ +func :: (((((((((()))))))))) +-- current output is.. funny. wonder if that can/needs to be improved.. diff --git a/data/Test70.hs b/data/Test70.hs new file mode 100644 index 0000000..a2147f6 --- /dev/null +++ b/data/Test70.hs @@ -0,0 +1,3 @@ +-- brittany {lconfig_indentPolicy: IndentPolicyFree } +data GrantsForCompanyResp = GrantsForCompanyResp Types.Company + [EnterpriseGrantResponse] diff --git a/data/Test71.hs b/data/Test71.hs new file mode 100644 index 0000000..5de2318 --- /dev/null +++ b/data/Test71.hs @@ -0,0 +1,4 @@ +-- brittany {lconfig_indentPolicy: IndentPolicyFree } +data EnterpriseGrantsForCompanyResponse = EnterpriseGrantsForCompanyResponse + Types.Company + [EnterpriseGrantResponse] diff --git a/data/Test72.hs b/data/Test72.hs new file mode 100644 index 0000000..af66351 --- /dev/null +++ b/data/Test72.hs @@ -0,0 +1,3 @@ +-- brittany {lconfig_indentPolicy: IndentPolicyMultiple } +data GrantsForCompanyResp = GrantsForCompanyResp Types.Company + [EnterpriseGrantResponse] diff --git a/data/Test73.hs b/data/Test73.hs new file mode 100644 index 0000000..260d671 --- /dev/null +++ b/data/Test73.hs @@ -0,0 +1,22 @@ +data XIILqcacwiuNiu = XIILqcacwiuNiu + { oyyFtvbepgbOge_pebzVmuftEijwuj :: Jgtoyuh HessJvNlo + , wloQsiskdoxJop_xatiKrwedOxtu :: Jgtoyuh [Inotg] + , mmmJjcqtemyIyo_ovosDoreKeeoyamvove :: Jgtoyuh Eujo + , mbiIatelofxOzr_uluxNngiiMjah :: Jgtoyuh HessJvNlo + , obxIskfcxpkIkb_uuviTuevcSkrgo :: Jgtoyuh Int + , wqrAtuvuecoHwr_ilotNxbuPleo :: Jgtoyuh Ufaxdeq + , lofAfuebdhpLuv_cnekPoyFxmg :: Jgtoyuh Ufaxdeq + , ouoFugtawzvUpk_oupiLzptugy :: Jgtoyuh Eujo + , iqiXjtziwogNsa_uiyvSunaTtgUsf3 :: Jgtoyuh Oaivn + , odbIriaqnojUlz_onotoWuunehIpuy :: Jgtoyuh Eujo + , opjUxtkxzkiKse_luqjuZazt + :: Jgtoyuh [(Eujo, Int, Int, Int, Int, Int, NELUxro)] + -- , jcqRaqznxfhIpa_ywevMezmoYkutuwa :: Jgtoyuh () + , vayOmuasyphOfd_bcsVljmvt :: Jgtoyuh Eujo + , rifArahilooRax_ufikecqdImsv :: Jgtoyuh Oaivn + , raqKtopcpszDwb_oqocubasZuqjcryoDojGkw :: Jgtoyuh Oaivn + , mluJiilpcijUtt_gaisklifVekfeyagRmfbyzz :: Jgtoyuh Oaivn + , oqhPaahjupaSmi_gamwwoovKyxznecvEayluc :: Jgtoyuh Oaivn + , mazFubimwebZpa_itidehDodiDlboz :: Jgtoyuh Vrep + , jeyOcuesexaYoy_vpqn :: Jgtoyuh () + } diff --git a/data/Test74.hs b/data/Test74.hs new file mode 100644 index 0000000..e9e6d4f --- /dev/null +++ b/data/Test74.hs @@ -0,0 +1 @@ +func x = x diff --git a/data/Test75.hs b/data/Test75.hs new file mode 100644 index 0000000..2e7361d --- /dev/null +++ b/data/Test75.hs @@ -0,0 +1 @@ +x *** y = x diff --git a/data/Test76.hs b/data/Test76.hs new file mode 100644 index 0000000..877399e --- /dev/null +++ b/data/Test76.hs @@ -0,0 +1 @@ +(***) x y = x diff --git a/data/Test77.hs b/data/Test77.hs new file mode 100644 index 0000000..b0795a1 --- /dev/null +++ b/data/Test77.hs @@ -0,0 +1 @@ +(f >=> g) k = f k >>= g diff --git a/data/Test78.hs b/data/Test78.hs new file mode 100644 index 0000000..1f3d4e7 --- /dev/null +++ b/data/Test78.hs @@ -0,0 +1,4 @@ +(Left a <$$> Left dd) e f = True +(Left a <$$> Right d ) e f = True +(Right a <$$> Left d ) e f = False +(Right a <$$> Right dd) e f = True diff --git a/data/Test79.hs b/data/Test79.hs new file mode 100644 index 0000000..bc6cbe5 --- /dev/null +++ b/data/Test79.hs @@ -0,0 +1 @@ +func _ = x diff --git a/data/Test8.hs b/data/Test8.hs new file mode 100644 index 0000000..9b1b57b --- /dev/null +++ b/data/Test8.hs @@ -0,0 +1 @@ +func :: () diff --git a/data/Test80.hs b/data/Test80.hs new file mode 100644 index 0000000..5c29c83 --- /dev/null +++ b/data/Test80.hs @@ -0,0 +1,2 @@ +func reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable = + x diff --git a/data/Test81.hs b/data/Test81.hs new file mode 100644 index 0000000..7649b18 --- /dev/null +++ b/data/Test81.hs @@ -0,0 +1,2 @@ +func reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable + = x diff --git a/data/Test82.hs b/data/Test82.hs new file mode 100644 index 0000000..dcb58cf --- /dev/null +++ b/data/Test82.hs @@ -0,0 +1,2 @@ +func reallyreallyreallyreallyreallyreallyreallyreallyreallyreallylongvariable a b + = x diff --git a/data/Test83.hs b/data/Test83.hs new file mode 100644 index 0000000..2e709c1 --- /dev/null +++ b/data/Test83.hs @@ -0,0 +1 @@ +func (A a) = a diff --git a/data/Test84.hs b/data/Test84.hs new file mode 100644 index 0000000..58f9aca --- /dev/null +++ b/data/Test84.hs @@ -0,0 +1 @@ +func (x : xr) = x diff --git a/data/Test85.hs b/data/Test85.hs new file mode 100644 index 0000000..f097653 --- /dev/null +++ b/data/Test85.hs @@ -0,0 +1 @@ +func (x :+: xr) = x diff --git a/data/Test86.hs b/data/Test86.hs new file mode 100644 index 0000000..f5eccc0 --- /dev/null +++ b/data/Test86.hs @@ -0,0 +1 @@ +func (x `Foo` xr) = x diff --git a/data/Test87.hs b/data/Test87.hs new file mode 100644 index 0000000..5a64709 --- /dev/null +++ b/data/Test87.hs @@ -0,0 +1 @@ +func | True = x diff --git a/data/Test88.hs b/data/Test88.hs new file mode 100644 index 0000000..ca71136 --- /dev/null +++ b/data/Test88.hs @@ -0,0 +1,2 @@ +func x | x = simple expression + | otherwise = 0 diff --git a/data/Test89.hs b/data/Test89.hs new file mode 100644 index 0000000..c18a534 --- /dev/null +++ b/data/Test89.hs @@ -0,0 +1,3 @@ +func x + | a somewhat longer guard x = "and a somewhat longer expession that does not" + | otherwise = "fit without putting the guards in new lines" diff --git a/data/Test9.hs b/data/Test9.hs new file mode 100644 index 0000000..1b64914 --- /dev/null +++ b/data/Test9.hs @@ -0,0 +1,5 @@ +func + :: ( lkasdlkjalsdjlakjsdlkjasldkjalskdjlkajsd + -> lakjsdlkjasldkj + -> lakjsdlkjasldkj + ) diff --git a/data/Test90.hs b/data/Test90.hs new file mode 100644 index 0000000..6f9ef8f --- /dev/null +++ b/data/Test90.hs @@ -0,0 +1,7 @@ +func x + | very long guard, another rather long guard that refers to x = nontrivial + expression + foo + bar + alsdkjlasdjlasj + | otherwise = 0 diff --git a/data/Test91.hs b/data/Test91.hs new file mode 100644 index 0000000..9256c3f --- /dev/null +++ b/data/Test91.hs @@ -0,0 +1,5 @@ +func x + | very long guard, another rather long guard that refers to x + = nontrivialexpression foo bar alsdkjlasdjlasj + | otherwise + = 0 diff --git a/data/Test92.hs b/data/Test92.hs new file mode 100644 index 0000000..289aa8b --- /dev/null +++ b/data/Test92.hs @@ -0,0 +1,6 @@ +func x + | very loooooooooooooooooooooooooooooong guard + , another rather long guard that refers to x + = nontrivial expression foo bar alsdkjlasdjlasj + | otherwise + = 0 diff --git a/data/Test93.hs b/data/Test93.hs new file mode 100644 index 0000000..48053a4 --- /dev/null +++ b/data/Test93.hs @@ -0,0 +1,2 @@ +func = x +describe "infix op" $ do diff --git a/data/Test94.hs b/data/Test94.hs new file mode 100644 index 0000000..aa1fd8f --- /dev/null +++ b/data/Test94.hs @@ -0,0 +1 @@ +func = x + x diff --git a/data/Test95.hs b/data/Test95.hs new file mode 100644 index 0000000..2d99eaf --- /dev/null +++ b/data/Test95.hs @@ -0,0 +1,3 @@ +func = + mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj + + mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj diff --git a/data/Test96.hs b/data/Test96.hs new file mode 100644 index 0000000..d9a2015 --- /dev/null +++ b/data/Test96.hs @@ -0,0 +1,4 @@ +func = + mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj + + mweroiuxlskdfjlksj + + mweroiuxlskdfjlksj diff --git a/data/Test97.hs b/data/Test97.hs new file mode 100644 index 0000000..094383e --- /dev/null +++ b/data/Test97.hs @@ -0,0 +1,4 @@ +func = + mweroiuxlskdfjlksj + + mweroiuxlskdfjlksj + + mweroiuxlskdfjlksjdflkjsdfljksldkjflkjsdflkj diff --git a/data/Test98.hs b/data/Test98.hs new file mode 100644 index 0000000..cc29546 --- /dev/null +++ b/data/Test98.hs @@ -0,0 +1,5 @@ +func = 1 +func = "abc" +func = 1.1e5 +func = 'x' +func = 981409823458910394810928414192837123987123987123 diff --git a/data/Test99.hs b/data/Test99.hs new file mode 100644 index 0000000..efcec60 --- /dev/null +++ b/data/Test99.hs @@ -0,0 +1,2 @@ +func = \x -> abc +describe "app" $ do diff --git a/data/brittany.yaml b/data/brittany.yaml new file mode 100644 index 0000000..b9b9aab --- /dev/null +++ b/data/brittany.yaml @@ -0,0 +1,4 @@ +conf_layout: + lconfig_allowSingleLineExportList: true + lconfig_importAsColumn: 60 + lconfig_importColumn: 60 diff --git a/source/library/Language/Haskell/Brittany/Main.hs b/source/library/Language/Haskell/Brittany/Main.hs index c32f1f7..ca9fc7b 100644 --- a/source/library/Language/Haskell/Brittany/Main.hs +++ b/source/library/Language/Haskell/Brittany/Main.hs @@ -31,6 +31,7 @@ import Language.Haskell.Brittany.Internal.Utils import qualified Language.Haskell.GHC.ExactPrint as ExactPrint import Paths_brittany import qualified System.Directory as Directory +import qualified System.Environment as Environment import qualified System.Exit import qualified System.FilePath.Posix as FilePath import qualified System.IO @@ -54,7 +55,16 @@ instance Show WriteMode where main :: IO () -main = mainFromCmdParserWithHelpDesc mainCmdParser +main = do + progName <- Environment.getProgName + args <- Environment.getArgs + mainWith progName args + +mainWith :: String -> [String] -> IO () +mainWith progName args = + Environment.withProgName progName + . Environment.withArgs args + $ mainFromCmdParserWithHelpDesc mainCmdParser helpDoc :: PP.Doc helpDoc = PP.vcat $ List.intersperse diff --git a/source/test-suite/Main.hs b/source/test-suite/Main.hs index 36e79ef..c8324df 100644 --- a/source/test-suite/Main.hs +++ b/source/test-suite/Main.hs @@ -1,256 +1,50 @@ -{-# LANGUAGE LambdaCase #-} -{-# LANGUAGE MonadComprehensions #-} -{-# LANGUAGE ScopedTypeVariables #-} - -import Data.Coerce (coerce) -import Data.List (groupBy) -import qualified Data.Maybe -import qualified Data.Semigroup as Semigroup -import qualified Data.Text as Text -import qualified Data.Text.IO as Text.IO -import qualified GHC.OldList as List -import Language.Haskell.Brittany.Internal -import Language.Haskell.Brittany.Internal.Config -import Language.Haskell.Brittany.Internal.Config.Types -import Language.Haskell.Brittany.Internal.Prelude -import Language.Haskell.Brittany.Internal.PreludeUtils -import qualified System.Directory -import System.FilePath (()) -import System.Timeout (timeout) -import Test.Hspec -import qualified Text.Parsec as Parsec -import Text.Parsec.Text (Parser) - -hush :: Either a b -> Maybe b -hush = either (const Nothing) Just - - - -asymptoticPerfTest :: Spec -asymptoticPerfTest = do - it "10 do statements" - $ roundTripEqualWithTimeout 1500000 - $ (Text.pack "func = do\n") - <> Text.replicate 10 (Text.pack " statement\n") - it "10 do nestings" - $ roundTripEqualWithTimeout 4000000 - $ (Text.pack "func = ") - <> mconcat - ( [1 .. 10] - <&> \(i :: Int) -> - (Text.replicate (2 * i) (Text.pack " ") <> Text.pack "do\n") - ) - <> Text.replicate 2000 (Text.pack " ") - <> Text.pack "return\n" - <> Text.replicate 2002 (Text.pack " ") - <> Text.pack "()" - it "10 AppOps" - $ roundTripEqualWithTimeout 1000000 - $ (Text.pack "func = expr") - <> Text.replicate 10 (Text.pack "\n . expr") --TODO - -roundTripEqualWithTimeout :: Int -> Text -> Expectation -roundTripEqualWithTimeout time t = - timeout time (action >>= evaluate) >>= (`shouldSatisfy`Data.Maybe.isJust) - where - action = fmap (fmap PPTextWrapper) - (parsePrintModuleTests defaultTestConfig "TestFakeFileName.hs" t) - - -data InputLine - = GroupLine Text - | HeaderLine Text - | PendingLine - | NormalLine Text - | CommentLine - deriving Show - -data TestCase = TestCase - { testName :: Text - , isPending :: Bool - , content :: Text - } +import qualified Control.Exception as Exception +import qualified Control.Monad as Monad +import qualified Data.List as List +import qualified Language.Haskell.Brittany.Main as Brittany +import qualified System.Directory as Directory +import qualified System.FilePath as FilePath +import qualified System.IO as IO +import qualified Test.Hspec as Hspec main :: IO () -main = do - files <- System.Directory.listDirectory "data/" - let blts = - List.sort - $ filter (\x -> not ("tests-context-free.blt" `isSuffixOf` x)) - $ filter (".blt" `isSuffixOf`) files - inputs <- blts `forM` \blt -> Text.IO.readFile ("data" blt) - let groups = createChunks =<< inputs - inputCtxFree <- Text.IO.readFile "data/30-tests-context-free.blt" - let groupsCtxFree = createChunks inputCtxFree - hspec $ do - describe "asymptotic perf roundtrips" $ asymptoticPerfTest - describe "library interface basic functionality" $ do - it "gives properly formatted result for valid input" $ do - let - input = Text.pack $ unlines - ["func = [00000000000000000000000, 00000000000000000000000, 00000000000000000000000, 00000000000000000000000]"] - let expected = Text.pack $ unlines - [ "func =" - , " [ 00000000000000000000000" - , " , 00000000000000000000000" - , " , 00000000000000000000000" - , " , 00000000000000000000000" - , " ]" - ] - output <- liftIO $ parsePrintModule staticDefaultConfig input - hush output `shouldBe` Just expected - groups `forM_` \(groupname, tests) -> do - describe (Text.unpack groupname) $ do - tests `forM_` \test -> do - (if isPending test then before_ pending else id) - $ it (Text.unpack $ testName test) - $ roundTripEqual defaultTestConfig - $ content test - groupsCtxFree `forM_` \(groupname, tests) -> do - describe ("context free: " ++ Text.unpack groupname) $ do - tests `forM_` \test -> do - (if isPending test then before_ pending else id) - $ it (Text.unpack $ testName test) - $ roundTripEqual contextFreeTestConfig - $ content test - where - -- this function might be implemented in a weirdly complex fashion; the - -- reason being that it was copied from a somewhat more complex variant. - createChunks :: Text -> [(Text, [TestCase])] - createChunks input = --- fmap (\case --- HeaderLine n:PendingLine:rest | Just rlines <- mapM extractNormal rest -> (n, True, Text.unlines rlines) --- HeaderLine n:rest | Just rlines <- mapM extractNormal rest -> (n, False, Text.unlines rlines) --- l -> error $ "first non-empty line must start with #test footest\n" ++ show l --- ) --- $ fmap (groupBy grouperT) - fmap groupProcessor - $ groupBy grouperG - $ filter (not . lineIsSpace) - $ lineMapper - <$> Text.lines input - where - groupProcessor :: [InputLine] -> (Text, [TestCase]) - groupProcessor = \case - GroupLine g : grouprest -> - (,) g - $ fmap testProcessor - $ groupBy grouperT - $ filter (not . lineIsSpace) - $ grouprest - l -> error $ "first non-empty line must be a #group\n" ++ show l - testProcessor :: [InputLine] -> TestCase - testProcessor = \case - HeaderLine n : rest -> - let normalLines = Data.Maybe.mapMaybe extractNormal rest - in TestCase - { testName = n - , isPending = any isPendingLine rest - , content = Text.unlines normalLines - } - l -> - error $ "first non-empty line must start with #test footest\n" ++ show l - extractNormal (NormalLine l) = Just l - extractNormal _ = Nothing - isPendingLine PendingLine{} = True - isPendingLine _ = False - specialLineParser :: Parser InputLine - specialLineParser = Parsec.choice - [ [ GroupLine $ Text.pack name - | _ <- Parsec.try $ Parsec.string "#group" - , _ <- Parsec.many1 $ Parsec.oneOf " \t" - , name <- Parsec.many1 $ Parsec.noneOf "\r\n:" - , _ <- Parsec.eof - ] - , [ HeaderLine $ Text.pack name - | _ <- Parsec.try $ Parsec.string "#test" - , _ <- Parsec.many1 $ Parsec.oneOf " \t" - , name <- Parsec.many1 $ Parsec.noneOf "\r\n:" - , _ <- Parsec.eof - ] - , [ PendingLine - | _ <- Parsec.try $ Parsec.string "#pending" - , _ <- Parsec.optional $ many (Parsec.noneOf "\r\n") - , _ <- Parsec.eof - ] - , [ CommentLine - | _ <- Parsec.many $ Parsec.oneOf " \t" - , _ <- Parsec.optional $ Parsec.string "##" <* many - (Parsec.noneOf "\r\n") - , _ <- Parsec.eof - ] - , [ NormalLine mempty - | _ <- Parsec.try $ Parsec.string "" - , _ <- Parsec.eof - ] - ] - lineMapper :: Text -> InputLine - lineMapper line = case Parsec.runParser specialLineParser () "" line of - Left _e -> NormalLine line - Right l -> l - lineIsSpace :: InputLine -> Bool - lineIsSpace CommentLine = True - lineIsSpace _ = False - grouperG :: InputLine -> InputLine -> Bool - grouperG _ GroupLine{} = False - grouperG _ _ = True - grouperT :: InputLine -> InputLine -> Bool - grouperT _ HeaderLine{} = False - grouperT _ _ = True +main = Hspec.hspec . Hspec.parallel $ do + let directory = "data" + entries <- Hspec.runIO $ Directory.listDirectory directory + Monad.forM_ (List.sort entries) $ \entry -> + case FilePath.stripExtension "hs" entry of + Nothing -> pure () + Just slug -> Hspec.it slug $ do + let input = FilePath.combine directory entry + expected <- readFile input + actual <- withTemporaryFile $ \output handle -> do + IO.hClose handle + Directory.copyFile input output + Brittany.mainWith + "brittany" + [ "--config-file" + , FilePath.combine directory "brittany.yaml" + , "--no-user-config" + , "--write-mode" + , "inplace" + , output + ] + readFile output + Literal actual `Hspec.shouldBe` Literal expected +withTemporaryFile :: (FilePath -> IO.Handle -> IO a) -> IO a +withTemporaryFile callback = do + directory <- Directory.getTemporaryDirectory + let + acquire = IO.openTempFile directory "brittany-.hs" + release filePath handle = do + IO.hClose handle + Directory.removeFile filePath + Exception.bracket acquire (uncurry release) (uncurry callback) --------------------- --- past this line: copy-pasta from other test (meh..) --------------------- -roundTripEqual :: Config -> Text -> Expectation -roundTripEqual c t = - fmap (fmap PPTextWrapper) (parsePrintModuleTests c "TestFakeFileName.hs" t) - `shouldReturn` Right (PPTextWrapper t) - -newtype PPTextWrapper = PPTextWrapper Text +newtype Literal + = Literal String deriving Eq -instance Show PPTextWrapper where - show (PPTextWrapper t) = "\n" ++ Text.unpack t - --- brittany-next-binding --columns 160 --- brittany-next-binding { lconfig_indentPolicy: IndentPolicyLeft } -defaultTestConfig :: Config -defaultTestConfig = Config - { _conf_version = _conf_version staticDefaultConfig - , _conf_debug = _conf_debug staticDefaultConfig - , _conf_layout = LayoutConfig - { _lconfig_cols = coerce (80 :: Int) - , _lconfig_indentPolicy = coerce IndentPolicyFree - , _lconfig_indentAmount = coerce (2 :: Int) - , _lconfig_indentWhereSpecial = coerce True - , _lconfig_indentListSpecial = coerce True - , _lconfig_importColumn = coerce (60 :: Int) - , _lconfig_importAsColumn = coerce (60 :: Int) - , _lconfig_altChooser = coerce $ AltChooserBoundedSearch 3 - , _lconfig_columnAlignMode = coerce (ColumnAlignModeMajority 0.7) - , _lconfig_alignmentLimit = coerce (30 :: Int) - , _lconfig_alignmentBreakOnMultiline = coerce True - , _lconfig_hangingTypeSignature = coerce False - , _lconfig_reformatModulePreamble = coerce True - , _lconfig_allowSingleLineExportList = coerce True - , _lconfig_allowHangingQuasiQuotes = coerce True - , _lconfig_experimentalSemicolonNewlines = coerce False - -- , _lconfig_allowSinglelineRecord = coerce False - } - , _conf_errorHandling = (_conf_errorHandling staticDefaultConfig) { _econf_omit_output_valid_check = coerce True } - , _conf_preprocessor = _conf_preprocessor staticDefaultConfig - , _conf_forward = ForwardOptions { _options_ghc = Identity [] } - , _conf_roundtrip_exactprint_only = coerce False - , _conf_disable_formatting = coerce False - , _conf_obfuscate = coerce False - } - -contextFreeTestConfig :: Config -contextFreeTestConfig = defaultTestConfig - { _conf_layout = (_conf_layout defaultTestConfig) - { _lconfig_indentPolicy = coerce IndentPolicyLeft - , _lconfig_alignmentLimit = coerce (1 :: Int) - , _lconfig_columnAlignMode = coerce ColumnAlignModeDisabled - } - } +instance Show Literal where + show (Literal x) = x