diff options
| -rw-r--r-- | compiler/deSugar/Check.hs | 5 | ||||
| -rw-r--r-- | testsuite/tests/deSugar/should_compile/T14547.hs | 15 | ||||
| -rw-r--r-- | testsuite/tests/deSugar/should_compile/all.T | 1 |
3 files changed, 1 insertions, 20 deletions
diff --git a/compiler/deSugar/Check.hs b/compiler/deSugar/Check.hs index 7a5f889423..545aacef51 100644 --- a/compiler/deSugar/Check.hs +++ b/compiler/deSugar/Check.hs @@ -790,13 +790,10 @@ translatePat fam_insts pat = case pat of -- overloaded list ListPat (ListPatTc elem_ty (Just (pat_ty, _to_list))) lpats | Just e_ty <- splitListTyConApp_maybe pat_ty - , (_, norm_e_ty) <- normaliseType fam_insts Nominal e_ty - -- e_ty can be a type family instance, like - -- `It (List a)`, but we prefer `a`, see Trac #14547 , (_, norm_elem_ty) <- normaliseType fam_insts Nominal elem_ty -- elem_ty is frequently something like -- `Item [Int]`, but we prefer `Int` - , norm_elem_ty `eqType` norm_e_ty -> + , norm_elem_ty `eqType` e_ty -> -- We have to ensure that the element types are exactly the same. -- Otherwise, one may give an instance IsList [Int] (more specific than -- the default IsList [a]) with a different implementation for `toList' diff --git a/testsuite/tests/deSugar/should_compile/T14547.hs b/testsuite/tests/deSugar/should_compile/T14547.hs deleted file mode 100644 index 02ff2e618c..0000000000 --- a/testsuite/tests/deSugar/should_compile/T14547.hs +++ /dev/null @@ -1,15 +0,0 @@ -{-# LANGUAGE OverloadedLists #-} -{-# LANGUAGE TypeFamilies #-} - -module T14547 where - -class Foo f where - type It f - foo :: [It f] -> f - -data List a = Empty | a :! List a deriving Show - -instance Foo (List a) where - type It (List a) = a - foo [] = Empty - foo (x : xs) = x :! foo xs diff --git a/testsuite/tests/deSugar/should_compile/all.T b/testsuite/tests/deSugar/should_compile/all.T index 14140737d8..2d361464a6 100644 --- a/testsuite/tests/deSugar/should_compile/all.T +++ b/testsuite/tests/deSugar/should_compile/all.T @@ -100,7 +100,6 @@ test('T13290', normal, compile, ['']) test('T13257', normal, compile, ['']) test('T13870', normal, compile, ['']) test('T14135', normal, compile, ['']) -test('T14547', normal, compile, ['-Wincomplete-patterns']) test('T14773a', normal, compile, ['-Wincomplete-patterns']) test('T14773b', normal, compile, ['-Wincomplete-patterns']) test('T14815', [], run_command, ['$MAKE -s --no-print-directory T14815']) |
