diff options
Diffstat (limited to 'testsuite/tests/backpack')
-rw-r--r-- | testsuite/tests/backpack/should_compile/all.T | 4 | ||||
-rw-r--r-- | testsuite/tests/backpack/should_compile/bkp57.bkp | 37 | ||||
-rw-r--r-- | testsuite/tests/backpack/should_compile/bkp57.stderr | 19 | ||||
-rw-r--r-- | testsuite/tests/backpack/should_compile/bkp58.bkp | 35 | ||||
-rw-r--r-- | testsuite/tests/backpack/should_compile/bkp58.stderr | 13 | ||||
-rw-r--r-- | testsuite/tests/backpack/should_compile/bkp59.bkp | 38 | ||||
-rw-r--r-- | testsuite/tests/backpack/should_compile/bkp59.stderr | 19 | ||||
-rw-r--r-- | testsuite/tests/backpack/should_compile/bkp60.bkp | 35 | ||||
-rw-r--r-- | testsuite/tests/backpack/should_compile/bkp60.stderr | 13 |
9 files changed, 213 insertions, 0 deletions
diff --git a/testsuite/tests/backpack/should_compile/all.T b/testsuite/tests/backpack/should_compile/all.T index 6655e09360..ac8c2a7ed8 100644 --- a/testsuite/tests/backpack/should_compile/all.T +++ b/testsuite/tests/backpack/should_compile/all.T @@ -48,6 +48,10 @@ test('bkp53', normal, backpack_compile, ['']) test('bkp54', normal, backpack_compile, ['']) test('bkp55', normal, backpack_compile, ['']) test('bkp56', normal, backpack_compile, ['']) +test('bkp57', normal, backpack_compile, ['']) +test('bkp58', normal, backpack_compile, ['']) +test('bkp59', normal, backpack_compile, ['']) +test('bkp60', normal, backpack_compile, ['']) test('T13140', normal, backpack_compile, ['']) test('T13149', expect_broken(13149), backpack_compile, ['']) diff --git a/testsuite/tests/backpack/should_compile/bkp57.bkp b/testsuite/tests/backpack/should_compile/bkp57.bkp new file mode 100644 index 0000000000..51cc19b97c --- /dev/null +++ b/testsuite/tests/backpack/should_compile/bkp57.bkp @@ -0,0 +1,37 @@ +-- no default method, backpack +{-# LANGUAGE AllowAmbiguousTypes #-} +{-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE TypeApplications #-} +unit common where + module Class where + class Show (T x) => C x where + type T x + def :: T x + --type T x = () +unit consumer-abs where + dependency common + signature Instance where + import Class + data I = I Int + instance C I where + --type T I = () + module Downstream where + import Class + import Instance + asdf :: C I => String + asdf = show $ def @I +unit consumer-impl where + dependency common + module Impl where + import Class + data I = I Int + instance C I where + type T I = () + def = () +unit tie where + dependency consumer-impl + dependency consumer-abs[Instance=consumer-impl:Impl] + module Tie where + import Downstream + main = print asdf diff --git a/testsuite/tests/backpack/should_compile/bkp57.stderr b/testsuite/tests/backpack/should_compile/bkp57.stderr new file mode 100644 index 0000000000..96f769a402 --- /dev/null +++ b/testsuite/tests/backpack/should_compile/bkp57.stderr @@ -0,0 +1,19 @@ +[1 of 4] Processing common + Instantiating common + [1 of 1] Compiling Class ( common/Class.hs, bkp57.out/common/Class.o ) +[2 of 4] Processing consumer-abs + [1 of 2] Compiling Instance[sig] ( consumer-abs/Instance.hsig, nothing ) + [2 of 2] Compiling Downstream ( consumer-abs/Downstream.hs, nothing ) +[3 of 4] Processing consumer-impl + Instantiating consumer-impl + [1 of 1] Including common + [1 of 1] Compiling Impl ( consumer-impl/Impl.hs, bkp57.out/consumer-impl/Impl.o ) +[4 of 4] Processing tie + Instantiating tie + [1 of 2] Including consumer-impl + [2 of 2] Including consumer-abs[Instance=consumer-impl:Impl] + Instantiating consumer-abs[Instance=consumer-impl:Impl] + [1 of 1] Including common + [1 of 2] Compiling Instance[sig] ( consumer-abs/Instance.hsig, bkp57.out/consumer-abs/consumer-abs-EtqPCpl4Hcf9otzJUe9fPM/Instance.o ) + [2 of 2] Compiling Downstream ( consumer-abs/Downstream.hs, bkp57.out/consumer-abs/consumer-abs-EtqPCpl4Hcf9otzJUe9fPM/Downstream.o ) + [1 of 1] Compiling Tie ( tie/Tie.hs, bkp57.out/tie/Tie.o ) diff --git a/testsuite/tests/backpack/should_compile/bkp58.bkp b/testsuite/tests/backpack/should_compile/bkp58.bkp new file mode 100644 index 0000000000..6055e74496 --- /dev/null +++ b/testsuite/tests/backpack/should_compile/bkp58.bkp @@ -0,0 +1,35 @@ +-- no default method, hs-boot +{-# LANGUAGE AllowAmbiguousTypes #-} +{-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE TypeApplications #-} +unit common where + module Class where + class Show (T x) => C x where + type T x + --type T x = () + def :: T x +unit consumer-impl where + dependency common + module {-# SOURCE #-} Impl where + import Class + data I = I Int + instance C I where + --type T I = () + module Downstream where + import Class + import {-# SOURCE #-} Impl + asdf :: C I => String + asdf = show $ def @I + module Impl where + import Class + data I = I Int + instance C I where + type T I = () + def = () +unit tie where + dependency consumer-impl + module Tie where + import Downstream + import Impl + main = print asdf diff --git a/testsuite/tests/backpack/should_compile/bkp58.stderr b/testsuite/tests/backpack/should_compile/bkp58.stderr new file mode 100644 index 0000000000..c5ce8bd55f --- /dev/null +++ b/testsuite/tests/backpack/should_compile/bkp58.stderr @@ -0,0 +1,13 @@ +[1 of 3] Processing common + Instantiating common + [1 of 1] Compiling Class ( common/Class.hs, bkp58.out/common/Class.o ) +[2 of 3] Processing consumer-impl + Instantiating consumer-impl + [1 of 1] Including common + [1 of 3] Compiling Impl[boot] ( consumer-impl/Impl.hs-boot, bkp58.out/consumer-impl/Impl.o-boot ) + [2 of 3] Compiling Downstream ( consumer-impl/Downstream.hs, bkp58.out/consumer-impl/Downstream.o ) + [3 of 3] Compiling Impl ( consumer-impl/Impl.hs, bkp58.out/consumer-impl/Impl.o ) +[3 of 3] Processing tie + Instantiating tie + [1 of 1] Including consumer-impl + [1 of 1] Compiling Tie ( tie/Tie.hs, bkp58.out/tie/Tie.o ) diff --git a/testsuite/tests/backpack/should_compile/bkp59.bkp b/testsuite/tests/backpack/should_compile/bkp59.bkp new file mode 100644 index 0000000000..7ba77ec6c1 --- /dev/null +++ b/testsuite/tests/backpack/should_compile/bkp59.bkp @@ -0,0 +1,38 @@ +-- default method, backpack +{-# LANGUAGE AllowAmbiguousTypes #-} +{-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE TypeApplications #-} +unit common where + module Class where + class Show (T x) => C x where + type T x + type T x = () + def :: T x + class D x where +unit consumer-abs where + dependency common + signature Instance where + import Class + data I = I Int + instance C I where + --type T I = () + module Downstream where + import Class + import Instance + asdf :: C I => String + asdf = show $ def @I +unit consumer-impl where + dependency common + module Impl where + import Class + data I = I Int + instance C I where + type T I = () + def = () +unit tie where + dependency consumer-impl + dependency consumer-abs[Instance=consumer-impl:Impl] + module Tie where + import Downstream + main = print asdf diff --git a/testsuite/tests/backpack/should_compile/bkp59.stderr b/testsuite/tests/backpack/should_compile/bkp59.stderr new file mode 100644 index 0000000000..364d6c2601 --- /dev/null +++ b/testsuite/tests/backpack/should_compile/bkp59.stderr @@ -0,0 +1,19 @@ +[1 of 4] Processing common + Instantiating common + [1 of 1] Compiling Class ( common/Class.hs, bkp59.out/common/Class.o ) +[2 of 4] Processing consumer-abs + [1 of 2] Compiling Instance[sig] ( consumer-abs/Instance.hsig, nothing ) + [2 of 2] Compiling Downstream ( consumer-abs/Downstream.hs, nothing ) +[3 of 4] Processing consumer-impl + Instantiating consumer-impl + [1 of 1] Including common + [1 of 1] Compiling Impl ( consumer-impl/Impl.hs, bkp59.out/consumer-impl/Impl.o ) +[4 of 4] Processing tie + Instantiating tie + [1 of 2] Including consumer-impl + [2 of 2] Including consumer-abs[Instance=consumer-impl:Impl] + Instantiating consumer-abs[Instance=consumer-impl:Impl] + [1 of 1] Including common + [1 of 2] Compiling Instance[sig] ( consumer-abs/Instance.hsig, bkp59.out/consumer-abs/consumer-abs-EtqPCpl4Hcf9otzJUe9fPM/Instance.o ) + [2 of 2] Compiling Downstream ( consumer-abs/Downstream.hs, bkp59.out/consumer-abs/consumer-abs-EtqPCpl4Hcf9otzJUe9fPM/Downstream.o ) + [1 of 1] Compiling Tie ( tie/Tie.hs, bkp59.out/tie/Tie.o ) diff --git a/testsuite/tests/backpack/should_compile/bkp60.bkp b/testsuite/tests/backpack/should_compile/bkp60.bkp new file mode 100644 index 0000000000..426ac1a75b --- /dev/null +++ b/testsuite/tests/backpack/should_compile/bkp60.bkp @@ -0,0 +1,35 @@ +-- default method, hs-boot +{-# LANGUAGE AllowAmbiguousTypes #-} +{-# LANGUAGE TypeFamilies #-} +{-# LANGUAGE FlexibleContexts #-} +{-# LANGUAGE TypeApplications #-} +unit common where + module Class where + class Show (T x) => C x where + type T x + type T x = () + def :: T x +unit consumer-impl where + dependency common + module {-# SOURCE #-} Impl where + import Class + data I = I Int + instance C I where + --type T I = () + module Downstream where + import Class + import {-# SOURCE #-} Impl + asdf :: C I => String + asdf = show $ def @I + module Impl where + import Class + data I = I Int + instance C I where + type T I = () + def = () +unit tie where + dependency consumer-impl + module Tie where + import Downstream + import Impl + main = print asdf diff --git a/testsuite/tests/backpack/should_compile/bkp60.stderr b/testsuite/tests/backpack/should_compile/bkp60.stderr new file mode 100644 index 0000000000..070a908b17 --- /dev/null +++ b/testsuite/tests/backpack/should_compile/bkp60.stderr @@ -0,0 +1,13 @@ +[1 of 3] Processing common + Instantiating common + [1 of 1] Compiling Class ( common/Class.hs, bkp60.out/common/Class.o ) +[2 of 3] Processing consumer-impl + Instantiating consumer-impl + [1 of 1] Including common + [1 of 3] Compiling Impl[boot] ( consumer-impl/Impl.hs-boot, bkp60.out/consumer-impl/Impl.o-boot ) + [2 of 3] Compiling Downstream ( consumer-impl/Downstream.hs, bkp60.out/consumer-impl/Downstream.o ) + [3 of 3] Compiling Impl ( consumer-impl/Impl.hs, bkp60.out/consumer-impl/Impl.o ) +[3 of 3] Processing tie + Instantiating tie + [1 of 1] Including consumer-impl + [1 of 1] Compiling Tie ( tie/Tie.hs, bkp60.out/tie/Tie.o ) |