summaryrefslogtreecommitdiff
path: root/compiler/rename/RnPat.lhs
diff options
context:
space:
mode:
authorMax Bolingbroke <batterseapower@hotmail.com>2012-03-07 17:28:21 +0000
committerMax Bolingbroke <batterseapower@hotmail.com>2012-03-07 17:28:21 +0000
commit4f070dd16ee31f38aff931f4b7b0ce562dcb98f4 (patch)
treedd41663f9b3fc6934e573c6f8ee2106db8259192 /compiler/rename/RnPat.lhs
parentfeeedb3ccf4977eb028924d072244237ff6e3984 (diff)
parent28f783f1c367784e0adcac2447682061a38f2ba3 (diff)
downloadhaskell-unboxed-tuple-arguments.tar.gz
Merge branch 'master' of ssh://darcs.haskell.org/srv/darcs/ghc into unboxed-tuple-argumentsunboxed-tuple-arguments
Diffstat (limited to 'compiler/rename/RnPat.lhs')
-rw-r--r--compiler/rename/RnPat.lhs8
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/rename/RnPat.lhs b/compiler/rename/RnPat.lhs
index 162ce22775..d0302a19a2 100644
--- a/compiler/rename/RnPat.lhs
+++ b/compiler/rename/RnPat.lhs
@@ -502,7 +502,7 @@ rnHsRecFields1 ctxt mk_arg (HsRecFields { rec_flds = flds, rec_dotdot = dotdot }
= return []
rn_dotdot (Just {}) Nothing _flds -- ".." on record update
= do { addErr (badDotDot ctxt); return [] }
- rn_dotdot (Just n) (Just con) flds -- ".." on record con/pat
+ rn_dotdot (Just n) (Just con) flds -- ".." on record construction / pat match
= ASSERT( n == length flds )
do { loc <- getSrcSpanM -- Rather approximate
; dd_flag <- xoptM Opt_RecordWildCards
@@ -526,11 +526,11 @@ rnHsRecFields1 ctxt mk_arg (HsRecFields { rec_flds = flds, rec_dotdot = dotdot }
where
rdr = mkRdrUnqual (nameOccName fld)
- dot_dot_gres = [ gre
+ dot_dot_gres = [ head gres
| fld <- con_fields
, not (fld `elem` present_flds)
- , let gres@(gre:_) = lookupGRE_Name rdr_env fld
- , not (null gres)
+ , let gres = lookupGRE_Name rdr_env fld
+ , not (null gres) -- Check field is in scope
, case ctxt of
HsRecFieldCon {} -> arg_in_scope fld
_other -> True ]