[commit: ghc] master: Rework renaming of children in export lists. (e660f4b)

git at git.haskell.org git at git.haskell.org
Sat Oct 8 09:08:40 UTC 2016


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/e660f4bf546e90fb6719ad268ca3daaecdce4b82/ghc

>---------------------------------------------------------------

commit e660f4bf546e90fb6719ad268ca3daaecdce4b82
Author: Matthew Pickering <matthewtpickering at gmail.com>
Date:   Sat Oct 8 10:06:01 2016 +0100

    Rework renaming of children in export lists.
    
    The target of this patch is exports such as:
    
    ```
    module Foo ( T(A, B, C) ) where
    ```
    
    Essentially this patch makes sure that we use the correct lookup functions in order
    to lookup the names in parent-children export lists. This change
    highlighted the complexity of this small part of GHC which accounts for
    the scale.
    
    This change was motivated by wanting to
    remove the `PatternSynonym` constructor from `Parent`. As with all these
    things, it quickly spiraled out of control into a much larger refactor.
    
    Reviewers: simonpj, goldfire, bgamari, austin
    
    Subscribers: adamgundry, thomie
    
    Differential Revision: https://phabricator.haskell.org/D2179
    
    GHC Trac Issues: #11970


>---------------------------------------------------------------

e660f4bf546e90fb6719ad268ca3daaecdce4b82
 compiler/basicTypes/Avail.hs                       |  38 +-
 compiler/basicTypes/RdrName.hs                     |  26 +-
 compiler/ghc.cabal.in                              |   1 +
 compiler/iface/LoadIface.hs                        |   2 +-
 compiler/iface/MkIface.hs                          |   2 +-
 compiler/main/HscTypes.hs                          |   2 +-
 compiler/rename/RnEnv.hs                           |   4 +-
 compiler/rename/RnExpr.hs                          |   2 +-
 compiler/rename/RnNames.hs                         | 449 +----------
 compiler/rename/RnSource.hs                        |   2 +-
 compiler/typecheck/TcRnDriver.hs                   | 140 +---
 compiler/typecheck/TcRnExports.hs                  | 848 +++++++++++++++++++++
 compiler/typecheck/TcRnMonad.hs                    |  23 +-
 compiler/typecheck/TcType.hs                       |   2 +-
 compiler/types/TyCoRep.hs                          |  19 +-
 compiler/utils/Util.hs                             |  10 +-
 testsuite/tests/module/MultiExport.hs              |   6 +
 testsuite/tests/module/MultiExport.stderr          |   3 +
 testsuite/tests/module/T11970.hs                   |  19 +
 testsuite/tests/module/T11970.stderr               |  12 +
 testsuite/tests/module/T11970A.hs                  |   3 +
 testsuite/tests/module/T11970A.stderr              |   5 +
 testsuite/tests/module/T11970A1.hs                 |   3 +
 testsuite/tests/module/T11970B.hs                  |   5 +
 testsuite/tests/module/T11970B.stderr              |   5 +
 testsuite/tests/module/all.T                       |   4 +
 testsuite/tests/module/mod10.stderr                |   4 +-
 testsuite/tests/module/mod17.stderr                |   8 +-
 testsuite/tests/module/mod3.stderr                 |   8 +-
 testsuite/tests/module/mod4.stderr                 |   7 +-
 .../overloadedrecflds/should_fail/NoParent.hs      |   6 +
 .../overloadedrecflds/should_fail/NoParent.stderr  |   6 +
 .../tests/overloadedrecflds/should_fail/all.T      |   1 +
 .../tests/patsyn/should_fail/export-class.stderr   |   5 +-
 34 files changed, 1021 insertions(+), 659 deletions(-)

Diff suppressed because of size. To see it, use:

    git diff-tree --root --patch-with-stat --no-color --find-copies-harder --ignore-space-at-eol --cc e660f4bf546e90fb6719ad268ca3daaecdce4b82


More information about the ghc-commits mailing list