diff options
author | Simon Peyton Jones <simonpj@microsoft.com> | 2014-06-06 11:39:41 +0100 |
---|---|---|
committer | Simon Peyton Jones <simonpj@microsoft.com> | 2014-06-06 13:06:09 +0100 |
commit | 7ac600d5fcd74db1f991555de6e415030970d5f3 (patch) | |
tree | 7d5e8aab6abdadf800c542face81d718d6856e11 /utils | |
parent | 6e50553c153f1160e3475e8c727f38b842aee96c (diff) | |
download | haskell-7ac600d5fcd74db1f991555de6e415030970d5f3.tar.gz |
Make the matcher and wrapper Ids in PatSyn into LocalIds, not GlobalIds
This was a serious bug, exposed by Trac #9175. The matcher and wrapper
must be LocalIds, like record selectors and dictionary functions, for
the reasons now documented in Note [Exported LocalIds] in Id.lhs
In fixing this I found
- PatSyn should have an Id inside it (apart from the wrapper and matcher)
It should be a Name. Hence psId --> psName, with knock-on consequences
- Tidying of PatSyns in TidyPgm was wrong
- The keep-alive set in Desugar.deSugar (now) doesn't need pattern synonyms
in it
I also cleaned up the interface to PatSyn a little, so there's a tiny knock-on
effect in Haddock; hence the haddock submodule update.
It's very hard to make a test for this bug, so I haven't.
Diffstat (limited to 'utils')
m--------- | utils/haddock | 0 |
1 files changed, 0 insertions, 0 deletions
diff --git a/utils/haddock b/utils/haddock -Subproject c4f6201356b29023ecbd2f7bf1c91e531858676 +Subproject 276f201de589999690e49491089c7e7ec9cfbf3 |