diff options
author | sheaf <sam.derbyshire@gmail.com> | 2022-03-02 00:12:17 +0100 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2022-03-02 14:08:36 -0500 |
commit | b27b2af3fab48e21aabcc9441967c4dd7a6a75ea (patch) | |
tree | ca2919f3d98c35b6a22b08118ca32f4dae04a40d /testsuite/tests/rep-poly | |
parent | aeea6bd588060108dea88996c19f48b9e50adad2 (diff) | |
download | haskell-b27b2af3fab48e21aabcc9441967c4dd7a6a75ea.tar.gz |
Introduce ConcreteTv metavariables
This patch introduces a new kind of metavariable, by adding the
constructor `ConcreteTv` to `MetaInfo`. A metavariable with
`ConcreteTv` `MetaInfo`, henceforth a concrete metavariable, can only
be unified with a type that is concrete (that is, a type that answers
`True` to `GHC.Core.Type.isConcrete`).
This solves the problem of dangling metavariables in `Concrete#`
constraints: instead of emitting `Concrete# ty`, which contains a
secret existential metavariable, we simply emit a primitive equality
constraint `ty ~# concrete_tv` where `concrete_tv` is a fresh concrete
metavariable.
This means we can avoid all the complexity of canonicalising
`Concrete#` constraints, as we can just re-use the existing machinery
for `~#`.
To finish things up, this patch then removes the `Concrete#` special
predicate, and instead introduces the special predicate `IsRefl#`
which enforces that a coercion is reflexive.
Such a constraint is needed because the canonicaliser is quite happy
to rewrite an equality constraint such as `ty ~# concrete_tv`, but
such a rewriting is not handled by the rest of the compiler currently,
as we need to make use of the resulting coercion, as outlined in the
FixedRuntimeRep plan.
The big upside of this approach (on top of simplifying the code)
is that we can now selectively implement PHASE 2 of FixedRuntimeRep,
by changing individual calls of `hasFixedRuntimeRep_MustBeRefl` to
`hasFixedRuntimeRep` and making use of the obtained coercion.
Diffstat (limited to 'testsuite/tests/rep-poly')
55 files changed, 287 insertions, 101 deletions
diff --git a/testsuite/tests/rep-poly/LevPolyLet.stderr b/testsuite/tests/rep-poly/LevPolyLet.stderr index 24456e99a8..ed47733081 100644 --- a/testsuite/tests/rep-poly/LevPolyLet.stderr +++ b/testsuite/tests/rep-poly/LevPolyLet.stderr @@ -1,6 +1,7 @@ LevPolyLet.hs:17:7: error: - • The binder ‘x’ does not have a fixed runtime representation: + • The binder ‘x’ does not have a fixed runtime representation. + Its type is: a :: TYPE ('BoxedRep v) • In the expression: let x = f 42 in undefined In an equation for ‘example’: example f = let x = f 42 in undefined diff --git a/testsuite/tests/rep-poly/RepPolyApp.stderr b/testsuite/tests/rep-poly/RepPolyApp.stderr index ee7e914b02..e823c04dc2 100644 --- a/testsuite/tests/rep-poly/RepPolyApp.stderr +++ b/testsuite/tests/rep-poly/RepPolyApp.stderr @@ -2,7 +2,8 @@ RepPolyApp.hs:11:11: error: • The function argument ‘(undefined :: a)’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE rep • In the first argument of ‘f’, namely ‘(undefined :: a)’ In the expression: f (undefined :: a) diff --git a/testsuite/tests/rep-poly/RepPolyArrowCmd.stderr b/testsuite/tests/rep-poly/RepPolyArrowCmd.stderr index 0541ef43ab..26a96f349a 100644 --- a/testsuite/tests/rep-poly/RepPolyArrowCmd.stderr +++ b/testsuite/tests/rep-poly/RepPolyArrowCmd.stderr @@ -1,7 +1,8 @@ RepPolyArrowCmd.hs:26:17: error: • The arrow command ‘returnA -< x’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE r • In the expression: proc x -> returnA -< x In an equation for ‘foo’: foo = proc x -> returnA -< x diff --git a/testsuite/tests/rep-poly/RepPolyArrowFun.stderr b/testsuite/tests/rep-poly/RepPolyArrowFun.stderr index f4ce90d51d..014dc19144 100644 --- a/testsuite/tests/rep-poly/RepPolyArrowFun.stderr +++ b/testsuite/tests/rep-poly/RepPolyArrowFun.stderr @@ -2,16 +2,19 @@ RepPolyArrowFun.hs:29:9: error: • • The return type of the arrow function ‘arr’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: arr b c :: TYPE r • The return type of the arrow function ‘(>>>)’ - does not have a fixed runtime representation: - arr a1 c1 :: TYPE r + does not have a fixed runtime representation. + Its type is: + arr a1 c4 :: TYPE r • The return type of the arrow function ‘first’ - does not have a fixed runtime representation: - arr (b1, d) (c2, d) :: TYPE r + does not have a fixed runtime representation. + Its type is: + arr (b1, d) (c5, d) :: TYPE r • When checking that ‘arr’ (needed by a syntactic construct) has the required type: forall b c. (b -> c) -> arr b c arising from a proc expression at RepPolyArrowFun.hs:29:9-32 @@ -19,11 +22,12 @@ RepPolyArrowFun.hs:29:9: error: In an equation for ‘foo’: foo _ = proc x -> undefined -< x RepPolyArrowFun.hs:29:19: error: - • In the first order arrow application of + • The function un the first order arrow application of ‘undefined’ to - ‘x’, - the function does not have a fixed runtime representation: + ‘x’ + does not have a fixed runtime representation. + Its type is: arr a a :: TYPE r • In the command: undefined -< x In the expression: proc x -> undefined -< x diff --git a/testsuite/tests/rep-poly/RepPolyBackpack1.stderr b/testsuite/tests/rep-poly/RepPolyBackpack1.stderr index 6c4c9901cd..9f3d77ff46 100644 --- a/testsuite/tests/rep-poly/RepPolyBackpack1.stderr +++ b/testsuite/tests/rep-poly/RepPolyBackpack1.stderr @@ -3,14 +3,16 @@ [2 of 2] Compiling NumberStuff ( number-unknown\NumberStuff.hs, nothing ) RepPolyBackpack1.bkp:17:5: error: - The type of the first pattern in the equation for ‘funcA’ - does not have a fixed runtime representation: + The first pattern in the equation for ‘funcA’ + does not have a fixed runtime representation. + Its type is: Number l :: TYPE (Rep l) RepPolyBackpack1.bkp:17:22: error: • The function argument ‘x’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: Number l :: TYPE (Rep l) • In the first argument of ‘plus’, namely ‘x’ In the expression: plus x (multiply x y) @@ -19,7 +21,8 @@ RepPolyBackpack1.bkp:17:22: error: RepPolyBackpack1.bkp:17:24: error: • The function argument ‘(multiply x y)’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: Number l :: TYPE (Rep l) • In the second argument of ‘plus’, namely ‘(multiply x y)’ In the expression: plus x (multiply x y) @@ -28,7 +31,8 @@ RepPolyBackpack1.bkp:17:24: error: RepPolyBackpack1.bkp:17:34: error: • The function argument ‘x’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: Number l :: TYPE (Rep l) • In the first argument of ‘multiply’, namely ‘x’ In the second argument of ‘plus’, namely ‘(multiply x y)’ @@ -37,7 +41,8 @@ RepPolyBackpack1.bkp:17:34: error: RepPolyBackpack1.bkp:17:36: error: • The function argument ‘y’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: Number l :: TYPE (Rep l) • In the second argument of ‘multiply’, namely ‘y’ In the second argument of ‘plus’, namely ‘(multiply x y)’ diff --git a/testsuite/tests/rep-poly/RepPolyBinder.stderr b/testsuite/tests/rep-poly/RepPolyBinder.stderr index 83489470e9..177a4865e6 100644 --- a/testsuite/tests/rep-poly/RepPolyBinder.stderr +++ b/testsuite/tests/rep-poly/RepPolyBinder.stderr @@ -1,8 +1,10 @@ RepPolyBinder.hs:11:1: error: - • The type of the first pattern in the equation for ‘foo’ - does not have a fixed runtime representation: + • The first pattern in the equation for ‘foo’ + does not have a fixed runtime representation. + Its type is: a :: TYPE rep1 - • The type of the second pattern in the equation for ‘foo’ - does not have a fixed runtime representation: + • The second pattern in the equation for ‘foo’ + does not have a fixed runtime representation. + Its type is: b :: TYPE rep2 diff --git a/testsuite/tests/rep-poly/RepPolyDeferred.stderr b/testsuite/tests/rep-poly/RepPolyDeferred.stderr index ff8fcc7688..4cb5449fa8 100644 --- a/testsuite/tests/rep-poly/RepPolyDeferred.stderr +++ b/testsuite/tests/rep-poly/RepPolyDeferred.stderr @@ -1,5 +1,6 @@ RepPolyDeferred.hs:8:1: error: - The type of the first pattern in the equation for ‘foo’ - does not have a fixed runtime representation: + The first pattern in the equation for ‘foo’ + does not have a fixed runtime representation. + Its type is: a :: TYPE rep diff --git a/testsuite/tests/rep-poly/RepPolyDoBind.stderr b/testsuite/tests/rep-poly/RepPolyDoBind.stderr index 69974a54a7..ff92a1ae26 100644 --- a/testsuite/tests/rep-poly/RepPolyDoBind.stderr +++ b/testsuite/tests/rep-poly/RepPolyDoBind.stderr @@ -2,7 +2,8 @@ RepPolyDoBind.hs:26:3: error: • The first argument to (>>=), arising from the ‘do’ statement, - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: ma0 :: TYPE rep • In a stmt of a 'do' block: a <- undefined In the expression: diff --git a/testsuite/tests/rep-poly/RepPolyDoBody1.stderr b/testsuite/tests/rep-poly/RepPolyDoBody1.stderr index 4e33390474..8779c23b39 100644 --- a/testsuite/tests/rep-poly/RepPolyDoBody1.stderr +++ b/testsuite/tests/rep-poly/RepPolyDoBody1.stderr @@ -2,11 +2,13 @@ RepPolyDoBody1.hs:24:3: error: • • The first argument to (>>), arising from the ‘do’ statement, - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: ma :: TYPE rep • The second argument to (>>), arising from the ‘do’ statement, - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: mb0 :: TYPE rep • In a stmt of a 'do' block: undefined :: ma In the expression: diff --git a/testsuite/tests/rep-poly/RepPolyDoBody2.stderr b/testsuite/tests/rep-poly/RepPolyDoBody2.stderr index 0154f2105e..5d83af9891 100644 --- a/testsuite/tests/rep-poly/RepPolyDoBody2.stderr +++ b/testsuite/tests/rep-poly/RepPolyDoBody2.stderr @@ -2,7 +2,8 @@ RepPolyDoBody2.hs:23:3: error: • The second argument to (>>), arising from the ‘do’ statement, - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: mb0 :: TYPE rep • In a stmt of a 'do' block: undefined :: () In the expression: diff --git a/testsuite/tests/rep-poly/RepPolyLeftSection2.stderr b/testsuite/tests/rep-poly/RepPolyLeftSection2.stderr index 79d0bc867e..6d299f2fed 100644 --- a/testsuite/tests/rep-poly/RepPolyLeftSection2.stderr +++ b/testsuite/tests/rep-poly/RepPolyLeftSection2.stderr @@ -2,7 +2,8 @@ RepPolyLeftSection2.hs:14:11: error: • The function argument ‘undefined’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE r • In the expression: undefined In the expression: undefined `f` diff --git a/testsuite/tests/rep-poly/RepPolyMagic.stderr b/testsuite/tests/rep-poly/RepPolyMagic.stderr index 3c83b2c3ec..47e7ba81d3 100644 --- a/testsuite/tests/rep-poly/RepPolyMagic.stderr +++ b/testsuite/tests/rep-poly/RepPolyMagic.stderr @@ -2,7 +2,8 @@ RepPolyMagic.hs:12:7: error: • Unsaturated use of a representation-polymorphic primitive function. The second argument of ‘seq’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: b :: TYPE r • In the expression: seq In an equation for ‘foo’: foo = seq @@ -10,7 +11,8 @@ RepPolyMagic.hs:12:7: error: RepPolyMagic.hs:15:7: error: • Unsaturated use of a representation-polymorphic primitive function. The second argument of ‘oneShot’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE r • In the expression: oneShot In an equation for ‘bar’: bar = oneShot diff --git a/testsuite/tests/rep-poly/RepPolyMatch.stderr b/testsuite/tests/rep-poly/RepPolyMatch.stderr index f52a699002..7573de3c18 100644 --- a/testsuite/tests/rep-poly/RepPolyMatch.stderr +++ b/testsuite/tests/rep-poly/RepPolyMatch.stderr @@ -1,7 +1,8 @@ RepPolyMatch.hs:11:9: error: - • The type of the first pattern in the case alternative - does not have a fixed runtime representation: + • The first pattern in the case alternative + does not have a fixed runtime representation. + Its type is: a :: TYPE rep • In the expression: \case In an equation for ‘match’: match = \case diff --git a/testsuite/tests/rep-poly/RepPolyMcBind.stderr b/testsuite/tests/rep-poly/RepPolyMcBind.stderr index 6468e4d73e..2febf28b9f 100644 --- a/testsuite/tests/rep-poly/RepPolyMcBind.stderr +++ b/testsuite/tests/rep-poly/RepPolyMcBind.stderr @@ -2,7 +2,8 @@ RepPolyMcBind.hs:26:16: error: • The first argument to (>>=), arising from the monad comprehension, - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: ma :: TYPE rep • In a stmt of a monad comprehension: x <- undefined :: ma In the expression: [() | x <- undefined :: ma] diff --git a/testsuite/tests/rep-poly/RepPolyMcBody.stderr b/testsuite/tests/rep-poly/RepPolyMcBody.stderr index 631e28cbc7..56df668fdd 100644 --- a/testsuite/tests/rep-poly/RepPolyMcBody.stderr +++ b/testsuite/tests/rep-poly/RepPolyMcBody.stderr @@ -2,7 +2,8 @@ RepPolyMcBody.hs:30:16: error: • The first argument to (>>), arising from the monad comprehension, - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: ma0 :: TYPE rep • In a stmt of a monad comprehension: True In the expression: [() | True] diff --git a/testsuite/tests/rep-poly/RepPolyMcGuard.stderr b/testsuite/tests/rep-poly/RepPolyMcGuard.stderr index 1d7036cb0a..46addb9982 100644 --- a/testsuite/tests/rep-poly/RepPolyMcGuard.stderr +++ b/testsuite/tests/rep-poly/RepPolyMcGuard.stderr @@ -2,11 +2,13 @@ RepPolyMcGuard.hs:30:16: error: • • The first argument to (>>), arising from the monad comprehension, - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: ma0 :: TYPE rep • The argument to ‘guard’, arising from the monad comprehension, - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a0 :: TYPE rep • In a stmt of a monad comprehension: undefined In the expression: [() | undefined] diff --git a/testsuite/tests/rep-poly/RepPolyNPlusK.stderr b/testsuite/tests/rep-poly/RepPolyNPlusK.stderr index cb5f9c3ac4..80672387db 100644 --- a/testsuite/tests/rep-poly/RepPolyNPlusK.stderr +++ b/testsuite/tests/rep-poly/RepPolyNPlusK.stderr @@ -1,5 +1,6 @@ RepPolyNPlusK.hs:22:1: error: - The type of the first pattern in the equation for ‘foo’ - does not have a fixed runtime representation: + The first pattern in the equation for ‘foo’ + does not have a fixed runtime representation. + Its type is: a :: TYPE rep1 diff --git a/testsuite/tests/rep-poly/RepPolyNewtypePat1.stderr b/testsuite/tests/rep-poly/RepPolyNewtypePat1.stderr index c2f391f928..6981d02016 100644 --- a/testsuite/tests/rep-poly/RepPolyNewtypePat1.stderr +++ b/testsuite/tests/rep-poly/RepPolyNewtypePat1.stderr @@ -1,5 +1,6 @@ RepPolyNewtypePat1.hs:16:1: error: - The type of the first pattern in the equation for ‘bar’ - does not have a fixed runtime representation: + The first pattern in the equation for ‘bar’ + does not have a fixed runtime representation. + Its type is: X a :: TYPE rep diff --git a/testsuite/tests/rep-poly/RepPolyPatBind.stderr b/testsuite/tests/rep-poly/RepPolyPatBind.stderr index b372027ea9..3914ea8e30 100644 --- a/testsuite/tests/rep-poly/RepPolyPatBind.stderr +++ b/testsuite/tests/rep-poly/RepPolyPatBind.stderr @@ -1,6 +1,7 @@ RepPolyPatBind.hs:18:5: error: - • The binder ‘x’ does not have a fixed runtime representation: + • The binder ‘x’ does not have a fixed runtime representation. + Its type is: a :: TYPE rep • In the expression: let diff --git a/testsuite/tests/rep-poly/RepPolyRecordPattern.stderr b/testsuite/tests/rep-poly/RepPolyRecordPattern.stderr index de3d9b66cc..50651762dd 100644 --- a/testsuite/tests/rep-poly/RepPolyRecordPattern.stderr +++ b/testsuite/tests/rep-poly/RepPolyRecordPattern.stderr @@ -1,10 +1,12 @@ RepPolyRecordPattern.hs:7:35: error: - The type of the first pattern in the equation for ‘fld’ - does not have a fixed runtime representation: + The first pattern in the equation for ‘fld’ + does not have a fixed runtime representation. + Its type is: X a :: TYPE rep RepPolyRecordPattern.hs:13:1: error: - The type of the first pattern in the equation for ‘upd’ - does not have a fixed runtime representation: + The first pattern in the equation for ‘upd’ + does not have a fixed runtime representation. + Its type is: X a :: TYPE rep diff --git a/testsuite/tests/rep-poly/RepPolyRecordUpdate.stderr b/testsuite/tests/rep-poly/RepPolyRecordUpdate.stderr index 91e7742f59..9189df8168 100644 --- a/testsuite/tests/rep-poly/RepPolyRecordUpdate.stderr +++ b/testsuite/tests/rep-poly/RepPolyRecordUpdate.stderr @@ -1,11 +1,14 @@ RepPolyRecordUpdate.hs:7:35: error: - The type of the first pattern in the equation for ‘fld’ - does not have a fixed runtime representation: + The first pattern in the equation for ‘fld’ + does not have a fixed runtime representation. + Its type is: X a :: TYPE rep RepPolyRecordUpdate.hs:13:9: error: - • The record update at field ‘fld’ does not have a fixed runtime representation: + • The record update at field ‘fld’ + does not have a fixed runtime representation. + Its type is: a :: TYPE rep • In the ‘fld’ field of a record In the expression: x {fld = meth ()} diff --git a/testsuite/tests/rep-poly/RepPolyRightSection.stderr b/testsuite/tests/rep-poly/RepPolyRightSection.stderr index 3209cdfff6..62c0bdcd8d 100644 --- a/testsuite/tests/rep-poly/RepPolyRightSection.stderr +++ b/testsuite/tests/rep-poly/RepPolyRightSection.stderr @@ -2,7 +2,8 @@ RepPolyRightSection.hs:14:11: error: • Unsaturated use of a representation-polymorphic primitive function. The third argument of ‘rightSection’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE r • In the expression: `g` undefined In an equation for ‘test2’: test2 = (`g` undefined) diff --git a/testsuite/tests/rep-poly/RepPolyRule1.stderr b/testsuite/tests/rep-poly/RepPolyRule1.stderr index 45305c5b72..bef17d948f 100644 --- a/testsuite/tests/rep-poly/RepPolyRule1.stderr +++ b/testsuite/tests/rep-poly/RepPolyRule1.stderr @@ -2,7 +2,8 @@ RepPolyRule1.hs:11:51: error: • The function argument ‘x’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE rep • In the first argument of ‘f’, namely ‘x’ In the expression: f x diff --git a/testsuite/tests/rep-poly/RepPolyRule2.stderr b/testsuite/tests/rep-poly/RepPolyRule2.stderr index 70a5af4687..70bd7eaa3a 100644 --- a/testsuite/tests/rep-poly/RepPolyRule2.stderr +++ b/testsuite/tests/rep-poly/RepPolyRule2.stderr @@ -2,7 +2,8 @@ RepPolyRule2.hs:17:55: error: • The function argument ‘x’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE (F rep) • In the first argument of ‘f’, namely ‘x’ In the expression: f x diff --git a/testsuite/tests/rep-poly/RepPolyRule3.stderr b/testsuite/tests/rep-poly/RepPolyRule3.stderr new file mode 100644 index 0000000000..524ddfd3e0 --- /dev/null +++ b/testsuite/tests/rep-poly/RepPolyRule3.stderr @@ -0,0 +1,26 @@ + +RepPolyRule3.hs:17:59: error: + • The function argument + ‘x’ + does not have a fixed runtime representation. + Its type is: + a :: TYPE (F 'WordRep) + NB: GHC does not (yet) support rewriting in runtime representations. + Please comment on GHC ticket #13105 if this is causing you trouble. + <https://gitlab.haskell.org/ghc/ghc/-/issues/13105> + • In the first argument of ‘g’, namely ‘x’ + In the expression: g x + When checking the rewrite rule "g_id" + +RepPolyRule3.hs:23:54: error: + • The function argument + ‘x’ + does not have a fixed runtime representation. + Its type is: + a :: TYPE (F 'WordRep) + NB: GHC does not (yet) support rewriting in runtime representations. + Please comment on GHC ticket #13105 if this is causing you trouble. + <https://gitlab.haskell.org/ghc/ghc/-/issues/13105> + • In the first argument of ‘h’, namely ‘x’ + In the expression: h x + When checking the rewrite rule "h_id" diff --git a/testsuite/tests/rep-poly/RepPolySum.stderr b/testsuite/tests/rep-poly/RepPolySum.stderr index f4f7bd09fe..dacb118e2a 100644 --- a/testsuite/tests/rep-poly/RepPolySum.stderr +++ b/testsuite/tests/rep-poly/RepPolySum.stderr @@ -1,6 +1,7 @@ RepPolySum.hs:11:9: error: - • The unboxed sum result type does not have a fixed runtime representation: + • The unboxed sum does not have a fixed runtime representation. + Its type is: (# Int# | a #) :: TYPE ('SumRep '[ 'IntRep, rep]) • In the expression: (# | bar () #) In an equation for ‘foo’: @@ -11,7 +12,8 @@ RepPolySum.hs:11:9: error: bar _ = undefined RepPolySum.hs:20:9: error: - • The unboxed sum result type does not have a fixed runtime representation: + • The unboxed sum does not have a fixed runtime representation. + Its type is: (# Int# | a #) :: TYPE ('SumRep '[ 'IntRep, rep]) • In the expression: (# 17# | #) In an equation for ‘baz’: baz _ = (# 17# | #) diff --git a/testsuite/tests/rep-poly/RepPolyTuple.stderr b/testsuite/tests/rep-poly/RepPolyTuple.stderr index 1c2c701fb2..e651dca0fd 100644 --- a/testsuite/tests/rep-poly/RepPolyTuple.stderr +++ b/testsuite/tests/rep-poly/RepPolyTuple.stderr @@ -1,6 +1,8 @@ RepPolyTuple.hs:11:9: error: - • The tuple argument in first position does not have a fixed runtime representation: + • The tuple argument in first position + does not have a fixed runtime representation. + Its type is: a :: TYPE r • In the expression: (# bar (), bar (), bar () #) In an equation for ‘foo’: diff --git a/testsuite/tests/rep-poly/RepPolyTupleSection.stderr b/testsuite/tests/rep-poly/RepPolyTupleSection.stderr index b4d08d02de..b2569ecfd6 100644 --- a/testsuite/tests/rep-poly/RepPolyTupleSection.stderr +++ b/testsuite/tests/rep-poly/RepPolyTupleSection.stderr @@ -1,6 +1,8 @@ RepPolyTupleSection.hs:11:7: error: - • The tuple section does not have a fixed runtime representation in the second position: + • The second component of the tuple section + does not have a fixed runtime representation. + Its type is: a :: TYPE r • In the expression: (# 3#, #) In an equation for ‘foo’: foo = (# 3#, #) diff --git a/testsuite/tests/rep-poly/RepPolyUnboxedPatterns.stderr b/testsuite/tests/rep-poly/RepPolyUnboxedPatterns.stderr index ced2503ca9..7efa7431c5 100644 --- a/testsuite/tests/rep-poly/RepPolyUnboxedPatterns.stderr +++ b/testsuite/tests/rep-poly/RepPolyUnboxedPatterns.stderr @@ -1,10 +1,12 @@ RepPolyUnboxedPatterns.hs:8:1: error: - The type of the first pattern in the equation for ‘foo’ - does not have a fixed runtime representation: + The first pattern in the equation for ‘foo’ + does not have a fixed runtime representation. + Its type is: (# a, b #) :: TYPE ('TupleRep '[rep1, rep2]) RepPolyUnboxedPatterns.hs:11:1: error: - The type of the first pattern in the equation for ‘bar’ - does not have a fixed runtime representation: + The first pattern in the equation for ‘bar’ + does not have a fixed runtime representation. + Its type is: (# a | b #) :: TYPE ('SumRep '[rep1, rep2]) diff --git a/testsuite/tests/rep-poly/RepPolyWildcardPattern.stderr b/testsuite/tests/rep-poly/RepPolyWildcardPattern.stderr index f5bb0cca08..de27799bbf 100644 --- a/testsuite/tests/rep-poly/RepPolyWildcardPattern.stderr +++ b/testsuite/tests/rep-poly/RepPolyWildcardPattern.stderr @@ -1,5 +1,6 @@ RepPolyWildcardPattern.hs:6:1: error: - The type of the first pattern in the equation for ‘foo’ - does not have a fixed runtime representation: + The first pattern in the equation for ‘foo’ + does not have a fixed runtime representation. + Its type is: a :: TYPE rep diff --git a/testsuite/tests/rep-poly/RepPolyWrappedVar.stderr b/testsuite/tests/rep-poly/RepPolyWrappedVar.stderr index d89a54115e..d5ab6aaa0f 100644 --- a/testsuite/tests/rep-poly/RepPolyWrappedVar.stderr +++ b/testsuite/tests/rep-poly/RepPolyWrappedVar.stderr @@ -2,7 +2,8 @@ RepPolyWrappedVar.hs:15:10: error: • Unsaturated use of a representation-polymorphic primitive function. The first argument of ‘mkWeak#’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE ('BoxedRep l) • In the expression: mkWeak# @a @Int @Bool In an equation for ‘primop’: primop = mkWeak# @a @Int @Bool diff --git a/testsuite/tests/rep-poly/T11473.stderr b/testsuite/tests/rep-poly/T11473.stderr index fdfa418318..2a4e92eae9 100644 --- a/testsuite/tests/rep-poly/T11473.stderr +++ b/testsuite/tests/rep-poly/T11473.stderr @@ -1,13 +1,15 @@ T11473.hs:19:1: error: - The type of the first pattern in the equation for ‘hello’ - does not have a fixed runtime representation: + The first pattern in the equation for ‘hello’ + does not have a fixed runtime representation. + Its type is: a :: TYPE r T11473.hs:19:17: error: • The function argument ‘x’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE r • In the first argument of ‘boxed’, namely ‘x’ In the expression: boxed x diff --git a/testsuite/tests/rep-poly/T12709.stderr b/testsuite/tests/rep-poly/T12709.stderr index 5b70aea4d7..78ebe39a7c 100644 --- a/testsuite/tests/rep-poly/T12709.stderr +++ b/testsuite/tests/rep-poly/T12709.stderr @@ -2,7 +2,8 @@ T12709.hs:28:13: error: • The function argument ‘1’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE rep • In the first argument of ‘(+)’, namely ‘1’ In the first argument of ‘(+)’, namely ‘1 + 2’ @@ -11,7 +12,8 @@ T12709.hs:28:13: error: T12709.hs:28:17: error: • The function argument ‘2’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE rep • In the second argument of ‘(+)’, namely ‘2’ In the first argument of ‘(+)’, namely ‘1 + 2’ @@ -20,7 +22,8 @@ T12709.hs:28:17: error: T12709.hs:28:21: error: • The function argument ‘3’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE rep • In the second argument of ‘(+)’, namely ‘3’ In the first argument of ‘(+)’, namely ‘1 + 2 + 3’ @@ -29,7 +32,8 @@ T12709.hs:28:21: error: T12709.hs:28:25: error: • The function argument ‘4’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE rep • In the second argument of ‘(+)’, namely ‘4’ In the expression: 1 + 2 + 3 + 4 diff --git a/testsuite/tests/rep-poly/T12973.stderr b/testsuite/tests/rep-poly/T12973.stderr index cc03e032e3..1f677f3050 100644 --- a/testsuite/tests/rep-poly/T12973.stderr +++ b/testsuite/tests/rep-poly/T12973.stderr @@ -2,7 +2,8 @@ T12973.hs:13:7: error: • The function argument ‘3’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE r • In the first argument of ‘(+)’, namely ‘3’ In the expression: 3 + 4 @@ -11,7 +12,8 @@ T12973.hs:13:7: error: T12973.hs:13:11: error: • The function argument ‘4’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE r • In the second argument of ‘(+)’, namely ‘4’ In the expression: 3 + 4 diff --git a/testsuite/tests/rep-poly/T13105.stderr b/testsuite/tests/rep-poly/T13105.stderr new file mode 100644 index 0000000000..e5eaafa03a --- /dev/null +++ b/testsuite/tests/rep-poly/T13105.stderr @@ -0,0 +1,10 @@ + +T13105.hs:22:3: error: + • The first pattern in the equation for ‘abst’ + does not have a fixed runtime representation. + Its type is: + Rep Int :: TYPE (RepRep Int) + NB: GHC does not (yet) support rewriting in runtime representations. + Please comment on GHC ticket #13105 if this is causing you trouble. + <https://gitlab.haskell.org/ghc/ghc/-/issues/13105> + • In the instance declaration for ‘HasRep Int’ diff --git a/testsuite/tests/rep-poly/T13233.stderr b/testsuite/tests/rep-poly/T13233.stderr index 248b71c49d..614aa7b796 100644 --- a/testsuite/tests/rep-poly/T13233.stderr +++ b/testsuite/tests/rep-poly/T13233.stderr @@ -1,7 +1,8 @@ T13233.hs:14:11: error: • The data constructor argument in first position - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE rep • In the first argument of ‘bar’, namely ‘(#,#)’ In the expression: bar (#,#) @@ -9,10 +10,12 @@ T13233.hs:14:11: error: T13233.hs:22:16: error: • • The data constructor argument in first position - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE rep1 • The data constructor argument in second position - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: b :: TYPE rep2 • In the first argument of ‘obscure’, namely ‘(#,#)’ In the expression: obscure (#,#) diff --git a/testsuite/tests/rep-poly/T13929.stderr b/testsuite/tests/rep-poly/T13929.stderr index 2b4d8a9768..23f0005172 100644 --- a/testsuite/tests/rep-poly/T13929.stderr +++ b/testsuite/tests/rep-poly/T13929.stderr @@ -1,8 +1,12 @@ T13929.hs:29:24: error: - • • The tuple argument in first position does not have a fixed runtime representation: + • • The tuple argument in first position + does not have a fixed runtime representation. + Its type is: GUnboxed f rf :: TYPE rf - • The tuple argument in second position does not have a fixed runtime representation: + • The tuple argument in second position + does not have a fixed runtime representation. + Its type is: GUnboxed g rg :: TYPE rg • In the expression: (# gunbox x, gunbox y #) In an equation for ‘gunbox’: @@ -11,7 +15,8 @@ T13929.hs:29:24: error: ‘GUnbox (f :*: g) ('TupleRep '[rf, rg])’ T13929.hs:33:21: error: - • The unboxed sum result type does not have a fixed runtime representation: + • The unboxed sum does not have a fixed runtime representation. + Its type is: GUnboxed (f :+: g) ('SumRep '[rf, rg]) :: TYPE ('SumRep '[rf, rg]) • In the expression: (# gunbox l | #) In an equation for ‘gunbox’: gunbox (L1 l) = (# gunbox l | #) @@ -19,7 +24,8 @@ T13929.hs:33:21: error: ‘GUnbox (f :+: g) ('SumRep '[rf, rg])’ T13929.hs:34:21: error: - • The unboxed sum result type does not have a fixed runtime representation: + • The unboxed sum does not have a fixed runtime representation. + Its type is: GUnboxed (f :+: g) ('SumRep '[rf, rg]) :: TYPE ('SumRep '[rf, rg]) • In the expression: (# | gunbox r #) In an equation for ‘gunbox’: gunbox (R1 r) = (# | gunbox r #) diff --git a/testsuite/tests/rep-poly/T14561.stderr b/testsuite/tests/rep-poly/T14561.stderr index d6815cbdcf..3c372e689c 100644 --- a/testsuite/tests/rep-poly/T14561.stderr +++ b/testsuite/tests/rep-poly/T14561.stderr @@ -2,7 +2,8 @@ T14561.hs:12:9: error: • Unsaturated use of a representation-polymorphic primitive function. The first argument of ‘unsafeCoerce#’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE r • In the expression: unsafeCoerce# In an equation for ‘badId’: badId = unsafeCoerce# diff --git a/testsuite/tests/rep-poly/T14561b.stderr b/testsuite/tests/rep-poly/T14561b.stderr index e7a919bb86..7af3b05511 100644 --- a/testsuite/tests/rep-poly/T14561b.stderr +++ b/testsuite/tests/rep-poly/T14561b.stderr @@ -2,7 +2,8 @@ T14561b.hs:12:9: error: • Unsaturated use of a representation-polymorphic primitive function. The first argument of ‘coerce’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE r • In the expression: coerce In an equation for ‘badId’: badId = coerce diff --git a/testsuite/tests/rep-poly/T14765.stderr b/testsuite/tests/rep-poly/T14765.stderr index 3e580cc884..57281f6507 100644 --- a/testsuite/tests/rep-poly/T14765.stderr +++ b/testsuite/tests/rep-poly/T14765.stderr @@ -2,7 +2,8 @@ T14765.hs:11:31: error: • The function argument ‘(k proxy#)’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: r :: TYPE rep • In the first argument of ‘f’, namely ‘(k proxy#)’ In the second argument of ‘fold’, namely ‘(f (k proxy#) x)’ diff --git a/testsuite/tests/rep-poly/T17021.stderr b/testsuite/tests/rep-poly/T17021.stderr new file mode 100644 index 0000000000..accd9c1560 --- /dev/null +++ b/testsuite/tests/rep-poly/T17021.stderr @@ -0,0 +1,13 @@ + +T17021.hs:18:9: error: + • The function argument + ‘42’ + does not have a fixed runtime representation. + Its type is: + Int :: TYPE (Id LiftedRep) + NB: GHC does not (yet) support rewriting in runtime representations. + Please comment on GHC ticket #13105 if this is causing you trouble. + <https://gitlab.haskell.org/ghc/ghc/-/issues/13105> + • In the first argument of ‘MkT’, namely ‘42’ + In the expression: MkT 42 + In an equation for ‘f’: f = MkT 42 diff --git a/testsuite/tests/rep-poly/T17360.stderr b/testsuite/tests/rep-poly/T17360.stderr index 5b9c25bc70..784eb9928b 100644 --- a/testsuite/tests/rep-poly/T17360.stderr +++ b/testsuite/tests/rep-poly/T17360.stderr @@ -1,5 +1,6 @@ T17360.hs:11:1: error: - The type of the first pattern in the equation for ‘foo’ - does not have a fixed runtime representation: + The first pattern in the equation for ‘foo’ + does not have a fixed runtime representation. + Its type is: Id a :: TYPE r diff --git a/testsuite/tests/rep-poly/T17536b.stderr b/testsuite/tests/rep-poly/T17536b.stderr new file mode 100644 index 0000000000..0682f44282 --- /dev/null +++ b/testsuite/tests/rep-poly/T17536b.stderr @@ -0,0 +1,22 @@ + +T17536b.hs:19:7: error: + • The first pattern in the lambda abstraction + does not have a fixed runtime representation. + Its type is: + a :: TYPE r + NB: GHC does not (yet) support rewriting in runtime representations. + Please comment on GHC ticket #13105 if this is causing you trouble. + <https://gitlab.haskell.org/ghc/ghc/-/issues/13105> + • In the expression: \ _ -> 0 + In an equation for ‘g’: g L = \ _ -> 0 + +T17536b.hs:20:7: error: + • The first pattern in the lambda abstraction + does not have a fixed runtime representation. + Its type is: + a :: TYPE r + NB: GHC does not (yet) support rewriting in runtime representations. + Please comment on GHC ticket #13105 if this is causing you trouble. + <https://gitlab.haskell.org/ghc/ghc/-/issues/13105> + • In the expression: \ _ -> 3# + In an equation for ‘g’: g U = \ _ -> 3# diff --git a/testsuite/tests/rep-poly/T17817.stderr b/testsuite/tests/rep-poly/T17817.stderr index 84eed10838..7acdec120a 100644 --- a/testsuite/tests/rep-poly/T17817.stderr +++ b/testsuite/tests/rep-poly/T17817.stderr @@ -2,7 +2,8 @@ T17817.hs:16:10: error: • Unsaturated use of a representation-polymorphic primitive function. The first argument of ‘mkWeak#’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE ('BoxedRep l) • In the expression: mkWeak# In an equation for ‘primop’: primop = mkWeak# diff --git a/testsuite/tests/rep-poly/T19615.stderr b/testsuite/tests/rep-poly/T19615.stderr index e263dc7cd0..aff0d742cf 100644 --- a/testsuite/tests/rep-poly/T19615.stderr +++ b/testsuite/tests/rep-poly/T19615.stderr @@ -2,7 +2,8 @@ T19615.hs:17:20: error: • The function argument ‘(f x)’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: b :: TYPE r' • In the first argument of ‘lift'’, namely ‘(f x)’ In the expression: lift' (f x) id diff --git a/testsuite/tests/rep-poly/T19709a.stderr b/testsuite/tests/rep-poly/T19709a.stderr index b4d0cce931..ee88ed0ed1 100644 --- a/testsuite/tests/rep-poly/T19709a.stderr +++ b/testsuite/tests/rep-poly/T19709a.stderr @@ -1,7 +1,8 @@ T19709a.hs:8:8: error: - • The type of the first pattern in the equation for ‘levid’ - does not have a fixed runtime representation: + • The first pattern in the equation for ‘levid’ + does not have a fixed runtime representation. + Its type is: a :: TYPE r • In the expression: let diff --git a/testsuite/tests/rep-poly/T19709b.stderr b/testsuite/tests/rep-poly/T19709b.stderr index 2f228c257a..63aa0f3751 100644 --- a/testsuite/tests/rep-poly/T19709b.stderr +++ b/testsuite/tests/rep-poly/T19709b.stderr @@ -2,7 +2,8 @@ T19709b.hs:11:14: error: • The function argument ‘(error @Any "e2")’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a0 :: TYPE Any • In the first argument of ‘levfun’, namely ‘(error @Any "e2")’ In the first argument of ‘seq’, namely ‘levfun (error @Any "e2")’ diff --git a/testsuite/tests/rep-poly/T20113.stderr b/testsuite/tests/rep-poly/T20113.stderr index 4ea6546309..da8439e9e7 100644 --- a/testsuite/tests/rep-poly/T20113.stderr +++ b/testsuite/tests/rep-poly/T20113.stderr @@ -1,5 +1,6 @@ T20113.hs:4:35: error: - The type of the first pattern in the equation for ‘$sel:y_fld:MkY’ - does not have a fixed runtime representation: + The first pattern in the equation for ‘$sel:y_fld:MkY’ + does not have a fixed runtime representation. + Its type is: Y a :: TYPE rep diff --git a/testsuite/tests/rep-poly/T20277.stderr b/testsuite/tests/rep-poly/T20277.stderr index 9445c55c79..b2e82c86eb 100644 --- a/testsuite/tests/rep-poly/T20277.stderr +++ b/testsuite/tests/rep-poly/T20277.stderr @@ -1,6 +1,7 @@ T20277.hs:14:9: error: - • The unboxed sum result type does not have a fixed runtime representation: + • The unboxed sum does not have a fixed runtime representation. + Its type is: (# Int# | a #) :: TYPE ('SumRep '[ 'IntRep, rep]) • In the expression: (# 17# | #) In an equation for ‘baz’: baz _ = (# 17# | #) diff --git a/testsuite/tests/rep-poly/T20363b.hs b/testsuite/tests/rep-poly/T20363b.hs index 52158cbe13..cb2a0ea745 100644 --- a/testsuite/tests/rep-poly/T20363b.hs +++ b/testsuite/tests/rep-poly/T20363b.hs @@ -51,4 +51,4 @@ test1c :: Int test1c = test1b ( MkNT (# #) ) test2c :: () -> Addr# -test2c _ = test1b ( MkNT (# nullAddr#, (# #) #) ) +test2c _ = test2b ( MkNT (# nullAddr#, (# #) #) ) diff --git a/testsuite/tests/rep-poly/T20363b.stderr b/testsuite/tests/rep-poly/T20363b.stderr new file mode 100644 index 0000000000..1d657f3237 --- /dev/null +++ b/testsuite/tests/rep-poly/T20363b.stderr @@ -0,0 +1,28 @@ + +T20363b.hs:51:24: error: + • The function argument + ‘(##)’ + does not have a fixed runtime representation. + Its type is: + NestedTuple 'Zero Addr# :: TYPE (NestedTupleRep 'Zero 'AddrRep) + NB: GHC does not (yet) support rewriting in runtime representations. + Please comment on GHC ticket #13105 if this is causing you trouble. + <https://gitlab.haskell.org/ghc/ghc/-/issues/13105> + • In the first argument of ‘MkNT’, namely ‘(##)’ + In the first argument of ‘test1b’, namely ‘(MkNT (##))’ + In the expression: test1b (MkNT (##)) + +T20363b.hs:54:26: error: + • The function argument + ‘(# nullAddr#, (##) #)’ + does not have a fixed runtime representation. + Its type is: + NestedTuple ('Suc 'Zero) Addr# :: TYPE + (NestedTupleRep ('Suc 'Zero) 'AddrRep) + NB: GHC does not (yet) support rewriting in runtime representations. + Please comment on GHC ticket #13105 if this is causing you trouble. + <https://gitlab.haskell.org/ghc/ghc/-/issues/13105> + • In the first argument of ‘MkNT’, namely ‘(# nullAddr#, (##) #)’ + In the first argument of ‘test2b’, namely + ‘(MkNT (# nullAddr#, (##) #))’ + In the expression: test2b (MkNT (# nullAddr#, (##) #)) diff --git a/testsuite/tests/rep-poly/T20426.stderr b/testsuite/tests/rep-poly/T20426.stderr index d6ef0f272f..9d9db41f8a 100644 --- a/testsuite/tests/rep-poly/T20426.stderr +++ b/testsuite/tests/rep-poly/T20426.stderr @@ -1,5 +1,6 @@ T20426.hs:15:1: error: - The type of the first pattern in the equation for ‘getInt#’ - does not have a fixed runtime representation: + The first pattern in the equation for ‘getInt#’ + does not have a fixed runtime representation. + Its type is: LPGADT l :: TYPE ('BoxedRep l) diff --git a/testsuite/tests/rep-poly/UnliftedNewtypesCoerceFail.stderr b/testsuite/tests/rep-poly/UnliftedNewtypesCoerceFail.stderr index 344ef39328..ba92961bcb 100644 --- a/testsuite/tests/rep-poly/UnliftedNewtypesCoerceFail.stderr +++ b/testsuite/tests/rep-poly/UnliftedNewtypesCoerceFail.stderr @@ -2,7 +2,8 @@ UnliftedNewtypesCoerceFail.hs:15:8: error: • Unsaturated use of a representation-polymorphic primitive function. The first argument of ‘coerce’ - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: x :: TYPE rep • In the expression: coerce In an equation for ‘goof’: goof = coerce diff --git a/testsuite/tests/rep-poly/UnliftedNewtypesLevityBinder.stderr b/testsuite/tests/rep-poly/UnliftedNewtypesLevityBinder.stderr index d4746f75c2..f4e7c62b46 100644 --- a/testsuite/tests/rep-poly/UnliftedNewtypesLevityBinder.stderr +++ b/testsuite/tests/rep-poly/UnliftedNewtypesLevityBinder.stderr @@ -1,7 +1,8 @@ UnliftedNewtypesLevityBinder.hs:16:7: error: • The newtype constructor argument - does not have a fixed runtime representation: + does not have a fixed runtime representation. + Its type is: a :: TYPE r • In the expression: IdentC In an equation for ‘bad’: bad = IdentC diff --git a/testsuite/tests/rep-poly/all.T b/testsuite/tests/rep-poly/all.T index c3b6e9eae6..d035558ef4 100644 --- a/testsuite/tests/rep-poly/all.T +++ b/testsuite/tests/rep-poly/all.T @@ -3,15 +3,12 @@ test('T11473', normal, compile_fail, ['']) test('T11724', normal, compile_fail, ['']) test('T12709', normal, compile_fail, ['']) test('T12973', normal, compile_fail, ['']) -test('T13105', expect_broken(17201), compile, ['']) test('T13233', normal, compile_fail, ['']) test('T13929', normal, compile_fail, ['']) test('T14561', normal, compile_fail, ['']) test('T14561b', normal, compile_fail, ['']) test('T14765', normal, compile_fail, ['']) -test('T17021', expect_broken(17201), compile, ['']) test('T17360', normal, compile_fail, ['']) -test('T17536b', expect_broken(17201), compile, ['']) test('T17817', normal, compile_fail, ['']) test('T18170a', [extra_files(['T18170c.hs'])], multimod_compile, ['T18170a.hs', '-v0']) test('T18170b', [extra_files(['T18170c.hs']), expect_broken(19893)], multimod_compile_fail, ['T18170b.hs', '-v0']) @@ -28,7 +25,6 @@ test('T20277', normal, compile_fail, ['']) test('T20330a', normal, compile, ['']) test('T20330b', normal, compile, ['']) test('T20363', normal, compile, ['']) -test('T20363b', expect_broken(17201), compile, ['']) test('T20423', normal, compile_fail, ['']) test('T20423b', normal, compile_fail, ['']) test('T20426', normal, compile_fail, ['']) @@ -69,7 +65,6 @@ test('RepPolyRecordUpdate', normal, compile_fail, ['']) test('RepPolyRightSection', normal, compile_fail, ['']) test('RepPolyRule1', normal, compile_fail, ['']) test('RepPolyRule2', normal, compile_fail, ['']) -test('RepPolyRule3', expect_broken(17201), compile, ['']) test('RepPolySum', normal, compile_fail, ['']) test('RepPolyTuple', normal, compile_fail, ['']) test('RepPolyTupleSection', normal, compile_fail, ['']) @@ -80,3 +75,17 @@ test('RepPolyWrappedVar', normal, compile_fail, ['']) test('RepPolyWrappedVar2', normal, compile, ['']) test('UnliftedNewtypesCoerceFail', normal, compile_fail, ['']) test('UnliftedNewtypesLevityBinder', normal, compile_fail, ['']) + +###################################################################### +## The following tests require rewriting in RuntimeReps, ## +## i.e. PHASE 2 of the FixedRuntimeRep plan. ## +## ## +## For the moment, we check that we get the expected error message, ## +## as we want to reject these in the typechecker instead of getting ## +## a compiler crash. ## +test('T13105', normal, compile_fail, ['']) ## +test('T17021', normal, compile_fail, ['']) ## +test('T17536b', normal, compile_fail, ['']) ## +test('T20363b', normal, compile_fail, ['']) ## +test('RepPolyRule3', normal, compile_fail, ['']) ## +###################################################################### |