[project @ 2000-04-03 09:52:28 by simonpj]
authorsimonpj <unknown>
Mon, 3 Apr 2000 09:52:30 +0000 (09:52 +0000)
committersimonpj <unknown>
Mon, 3 Apr 2000 09:52:30 +0000 (09:52 +0000)
commite4b0fab5a594c4ea29ddecdf216b4887420f26a4
treee37a65d50c9db9c331d0e384fb1d098dd4af5056
parent1131cd793f8de1dc1481ab9f801726d92f186e7c
[project @ 2000-04-03 09:52:28 by simonpj]
* Make it so that recursive newtype declarations don't send
  GHC into an infinite loop.

newtype T = MkT T

  This happened because Type.repType looked throught newtypes,
  and that never stopped!  Now TcTyDecls.mkNewTyConRep does the job
  more carefully, and the result is cached in the TyCon itself.

* Improve the handling of type signatures & pragmas.  Previously a
  mis-placed (say) SPECIALISE instance pragmas could be silently
  ignored.

Both these changes involved moving quite a lot of stuff between modules.
22 files changed:
ghc/compiler/absCSyn/CStrings.lhs
ghc/compiler/absCSyn/PprAbsC.lhs
ghc/compiler/basicTypes/BasicTypes.lhs
ghc/compiler/basicTypes/Name.lhs
ghc/compiler/deSugar/DsCCall.lhs
ghc/compiler/hsSyn/HsBinds.lhs
ghc/compiler/hsSyn/HsDecls.lhs
ghc/compiler/hsSyn/HsExpr.lhs
ghc/compiler/prelude/PrimOp.lhs
ghc/compiler/prelude/TysWiredIn.lhs
ghc/compiler/rename/RnBinds.lhs
ghc/compiler/rename/RnEnv.lhs
ghc/compiler/rename/RnMonad.lhs
ghc/compiler/rename/RnSource.lhs
ghc/compiler/stgSyn/CoreToStg.lhs
ghc/compiler/stranal/StrictAnal.lhs
ghc/compiler/typecheck/TcClassDcl.lhs
ghc/compiler/typecheck/TcIfaceSig.lhs
ghc/compiler/typecheck/TcTyDecls.lhs
ghc/compiler/types/TyCon.lhs
ghc/compiler/types/Type.lhs
ghc/compiler/utils/Outputable.lhs