Tue May  6 03:25:51 PDT 2008  [EMAIL PROTECTED]
  * Fix Trac #2246; overhaul handling of overloaded literals
  
  The real work of fixing Trac #2246 is to use shortCutLit in
  MatchLit.dsOverLit, so that type information discovered late in the
  day by the type checker can still be exploited during desugaring.
  
  However, as usual I found myself doing some refactoring along the
  way, to tidy up the handling of overloaded literals.   The main
  change is to split HsOverLit into a record, which in turn uses
  a sum type for the three variants.  This makes the code significantly
  more modular.
  
  data HsOverLit id
    = OverLit {
        ol_val :: OverLitVal, 
        ol_rebindable :: Bool,          -- True <=> rebindable syntax
                                        -- False <=> standard syntax
        ol_witness :: SyntaxExpr id,    -- Note [Overloaded literal witnesses]
        ol_type :: PostTcType }
  
  data OverLitVal
    = HsIntegral   !Integer     -- Integer-looking literals;
    | HsFractional !Rational    -- Frac-looking literals
    | HsIsString   !FastString  -- String-looking literals
  

    M ./compiler/deSugar/Check.lhs -5 +5
    M ./compiler/deSugar/DsMeta.hs -4 +7
    M ./compiler/deSugar/MatchLit.lhs -33 +48
    M ./compiler/hsSyn/HsLit.lhs -36 +54
    M ./compiler/hsSyn/HsUtils.lhs -3 +7
    M ./compiler/parser/RdrHsSyn.lhs -1 +1
    M ./compiler/rename/RnPat.lhs -30 +32
    M ./compiler/typecheck/Inst.lhs -79 +29
    M ./compiler/typecheck/TcHsSyn.lhs -12 +43
    M ./compiler/typecheck/TcPat.lhs -39 +13

View patch online:
http://darcs.haskell.org/ghc/_darcs/patches/20080506102551-1287e-95dc699365f8482cc5712dc4164e046a896b0cf9.gz

_______________________________________________
Cvs-ghc mailing list
Cvs-ghc@haskell.org
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to