diff options
Diffstat (limited to 'compiler/GHC/Rename/Expr.hs')
-rw-r--r-- | compiler/GHC/Rename/Expr.hs | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/compiler/GHC/Rename/Expr.hs b/compiler/GHC/Rename/Expr.hs index bbf52be2f8..f6ff657f50 100644 --- a/compiler/GHC/Rename/Expr.hs +++ b/compiler/GHC/Rename/Expr.hs @@ -41,6 +41,7 @@ import GHC.Rename.Utils ( HsDocContext(..), bindLocalNamesFV, checkDupNames , bindLocalNames , mapMaybeFvRn, mapFvRn , warnUnusedLocalBinds, typeAppErr + , ambiguousFieldOccErr , checkUnusedRecordWildcard ) import GHC.Rename.Unbound ( reportUnboundName ) import GHC.Rename.Splice ( rnBracket, rnSpliceExpr, checkThLocalName ) @@ -228,10 +229,13 @@ rnExpr (HsVar _ (L l v)) -> finishHsVar (L (na2la l) name) ; Just (UnambiguousGre (FieldGreName fl)) -> let sel_name = flSelector fl in - return ( HsRecFld noExtField (Unambiguous sel_name (L l v) ), unitFV sel_name) ; - Just AmbiguousFields -> - return ( HsRecFld noExtField (Ambiguous noExtField (L l v) ), emptyFVs) } } - + return ( HsRecFld noExtField (FieldOcc sel_name (L l v) ), unitFV sel_name) ; + Just AmbiguousFields -> do { + addErr $ ambiguousFieldOccErr v + ; return (HsUnboundVar noExtField (rdrNameOcc v), emptyFVs) + } + } + } rnExpr (HsIPVar x v) = return (HsIPVar x v, emptyFVs) |