Commit ce706fae authored by Sebastian Graf's avatar Sebastian Graf Committed by Marge Bot
Browse files

Pmc: Add regression test for #19622

It appears that the issue has already been fixed. Judging by the use of
a pattern synonym with a provided constraint, my bet is on 1793ca9d.

Fixes #19622.
parent c265d19f
Pipeline #33949 failed with stages
in 352 minutes and 28 seconds
{-# LANGUAGE GADTs #-}
{-# LANGUAGE PatternSynonyms #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE TypeInType #-}
{-# LANGUAGE TypeOperators #-}
{-# LANGUAGE ViewPatterns #-}
module T19622 where
import Data.Kind (Type)
data A
data B
data ElemKind k where
ElemKindA :: ElemKind A
ElemKindB :: ElemKind B
class KnownElemKind (xs :: [k]) where
getKind :: TypedList f xs -> ElemKind k
data TypedList (f :: (k -> Type)) (xs :: [k]) where
Nil :: TypedList f '[]
Cons :: f x -> TypedList f xs -> TypedList f (x ': xs)
data Dim (x :: k)
pattern DimA :: forall k (xs :: [k]) . KnownElemKind xs => (k ~ A) => TypedList Dim xs
pattern DimA <- (getKind -> ElemKindA)
{-# COMPLETE DimA #-}
{-# COMPLETE Nil, Cons #-}
f :: forall (xns :: [B]) . TypedList Dim xns -> TypedList Dim xns -> Bool
f Nil Nil = True
f (Cons _ _) (Cons _ _) = True
g :: forall (xns :: [B]) . TypedList Dim xns -> Bool
g Nil = True
g (Cons _ _) = True
h :: forall (xns :: [A]) . TypedList Dim xns -> Bool
h Nil = True
h (Cons _ _) = True
i :: forall (xns :: [A]) . TypedList Dim xns -> TypedList Dim xns -> Bool
i Nil Nil = True
i (Cons _ _) (Cons _ _) = True
j :: forall k (xns :: [k]) . TypedList Dim xns -> TypedList Dim xns -> Bool
j Nil Nil = True
j (Cons _ _) (Cons _ _) = True
l :: forall (xns :: [A]) . KnownElemKind xns => TypedList Dim xns -> Bool
l DimA = True
......@@ -162,6 +162,8 @@ test('T18708', normal, compile,
['-fwarn-incomplete-patterns -fwarn-overlapping-patterns'])
test('T18932', normal, compile,
['-fwarn-incomplete-patterns -fwarn-overlapping-patterns'])
test('T19622', normal, compile,
['-fwarn-incomplete-patterns -fwarn-overlapping-patterns'])
# Other tests
test('pmc001', [], compile,
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment