summaryrefslogtreecommitdiff
path: root/compiler
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2018-05-08 10:07:53 -0400
committerBen Gamari <ben@smart-cactus.org>2018-05-08 10:50:38 -0400
commit280de0c19682fb1b0941cad94f9219b513a6d3e2 (patch)
treeff246ce99e299fb7fffce59bce325a4f55d108d1 /compiler
parent37acca7ecea6a7365a52ec92f864f25fa179095a (diff)
downloadhaskell-280de0c19682fb1b0941cad94f9219b513a6d3e2.tar.gz
Revert "Normalize the element type of ListPat, fix #14547"
This reverts commit 361d23a8ebb44f5df5167306d7b98d8bd1724e06.
Diffstat (limited to 'compiler')
-rw-r--r--compiler/deSugar/Check.hs5
1 files changed, 1 insertions, 4 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'