[project @ 2004-12-22 12:06:13 by simonpj]
authorsimonpj <unknown>
Wed, 22 Dec 2004 12:07:41 +0000 (12:07 +0000)
committersimonpj <unknown>
Wed, 22 Dec 2004 12:07:41 +0000 (12:07 +0000)
commitd7c402a3cedbe49345a34f2e58a3f3050638dcb4
treedd321b3f222abb558567c077a3799ccf3bc590aa
parent1f3a9ff8e19636fcb5bf477922012bc67fd52b02
[project @ 2004-12-22 12:06:13 by simonpj]
----------------------------------------
     New Core invariant: keep case alternatives in sorted order
----------------------------------------

We now keep the alternatives of a Case in the Core language in sorted
order.  Sorted, that is,
by constructor tag for DataAlt
by literal for LitAlt

The main reason is that it makes matching and equality testing more robust.
But in fact some lines of code vanished from SimplUtils.mkAlts.

WARNING: no change to interface file formats, but you'll need to recompile
your libraries so that they generate interface files that respect the
invariant.
37 files changed:
ghc/compiler/basicTypes/MkId.lhs
ghc/compiler/coreSyn/CoreLint.lhs
ghc/compiler/coreSyn/CorePrep.lhs
ghc/compiler/coreSyn/CoreSyn.lhs
ghc/compiler/coreSyn/CoreTidy.lhs
ghc/compiler/coreSyn/CoreUnfold.lhs
ghc/compiler/coreSyn/CoreUtils.lhs
ghc/compiler/coreSyn/PprCore.lhs
ghc/compiler/coreSyn/PprExternalCore.lhs
ghc/compiler/cprAnalysis/CprAnalyse.lhs
ghc/compiler/deSugar/DsArrows.lhs
ghc/compiler/deSugar/DsCCall.lhs
ghc/compiler/deSugar/DsListComp.lhs
ghc/compiler/deSugar/DsUtils.lhs
ghc/compiler/deSugar/MatchLit.lhs
ghc/compiler/iface/TcIface.lhs
ghc/compiler/main/TidyPgm.lhs
ghc/compiler/ndpFlatten/Flattening.hs
ghc/compiler/ndpFlatten/NDPCoreUtils.hs
ghc/compiler/ndpFlatten/PArrAnal.hs
ghc/compiler/prelude/PrelRules.lhs
ghc/compiler/simplCore/FloatIn.lhs
ghc/compiler/simplCore/FloatOut.lhs
ghc/compiler/simplCore/LiberateCase.lhs
ghc/compiler/simplCore/OccurAnal.lhs
ghc/compiler/simplCore/SetLevels.lhs
ghc/compiler/simplCore/SimplUtils.lhs
ghc/compiler/simplCore/Simplify.lhs
ghc/compiler/specialise/Rules.lhs
ghc/compiler/specialise/SpecConstr.lhs
ghc/compiler/specialise/Specialise.lhs
ghc/compiler/stgSyn/CoreToStg.lhs
ghc/compiler/stranal/DmdAnal.lhs
ghc/compiler/stranal/WorkWrap.lhs
ghc/compiler/stranal/WwLib.lhs
ghc/compiler/types/TyCon.lhs
ghc/compiler/utils/Util.lhs