[project @ 1999-05-18 15:03:54 by simonpj]
[ghc-hetmet.git] / ghc / compiler / deSugar / Match.lhs
index 71e1749..c71eb5c 100644 (file)
@@ -26,7 +26,7 @@ import Id             ( idType, recordSelectorFieldLabel, Id )
 import DataCon         ( dataConFieldLabels, dataConArgTys )
 import MatchCon                ( matchConFamily )
 import MatchLit                ( matchLiterals )
-import PrelVals                ( pAT_ERROR_ID )
+import PrelInfo                ( pAT_ERROR_ID )
 import Type            ( isUnLiftedType, splitAlgTyConApp,
                          Type
                        )
@@ -460,22 +460,12 @@ tidy1 v (LazyPat pat) match_result
 tidy1 v (RecPat data_con pat_ty tvs dicts rpats) match_result
   = returnDs (ConPat data_con pat_ty tvs dicts pats, match_result)
   where
-      {-
-        Special case to handle C{}, where C is a constructor
-       that hasn't got any labelled fields - the Haskell98 report
-       doesn't seem to make that constraint (not that I think it
-       should).
-       -- sof 5/99
-      -}
-    pats
-       | null con_flabels = map (WildPat) con_arg_tys'
-       | otherwise       = map mk_pat tagged_arg_tys
+    pats            = map mk_pat tagged_arg_tys
 
        -- Boring stuff to find the arg-tys of the constructor
     (_, inst_tys, _) = splitAlgTyConApp pat_ty
     con_arg_tys'     = dataConArgTys data_con inst_tys 
-    con_flabels      = dataConFieldLabels data_con
-    tagged_arg_tys   = con_arg_tys' `zip` con_flabels
+    tagged_arg_tys   = con_arg_tys' `zip` (dataConFieldLabels data_con)
 
        -- mk_pat picks a WildPat of the appropriate type for absent fields,
        -- and the specified pattern for present fields