[commit: ghc] ghc-8.2: Clean up coreView/tcView. (6a1331c)

git at git.haskell.org git at git.haskell.org
Fri Mar 31 23:01:11 UTC 2017


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

On branch  : ghc-8.2
Link       : http://ghc.haskell.org/trac/ghc/changeset/6a1331ca25fcf1b20de1b44d9f2d50cbab5056f9/ghc

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

commit 6a1331ca25fcf1b20de1b44d9f2d50cbab5056f9
Author: Ben Gamari <ben at smart-cactus.org>
Date:   Mon Mar 27 13:17:00 2017 -0400

    Clean up coreView/tcView.
    
    In Core, Constraint should be considered fully equal to
    TYPE LiftedRep, in all ways. Accordingly, coreView should
    unwrap Constraint to become TYPE LiftedRep. Of course, this
    would be a disaster in the type checker.
    
    So, where previously we used coreView in both the type checker
    and in Core, we now have coreView and tcView, which differ only
    in their treatment of Constraint.
    
    Historical note: once upon a past, we had tcView distinct from
    coreView. Back then, it was because newtypes were unwrapped in
    Core but not in the type checker. The distinction is back, but
    for a different reason than before.
    
    This had a few knock-on effects:
    
     * The Typeable solver must explicitly handle Constraint to ensure
       that we produce the correct evidence.
    
     * TypeMap now respects the Constraint/Type distinction
    
    Finished by: bgamari
    
    Test Plan: ./validate
    
    Reviewers: simonpj, austin, bgamari
    
    Reviewed By: simonpj
    
    Subscribers: rwbarton, thomie
    
    Differential Revision: https://phabricator.haskell.org/D3316
    
    (cherry picked from commit 6575f4b635a393775295798ca86c7c3ba00819be)


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

6a1331ca25fcf1b20de1b44d9f2d50cbab5056f9
 compiler/coreSyn/TrieMap.hs                        | 23 +++++--
 compiler/simplStg/RepType.hs                       |  2 +-
 compiler/typecheck/TcCanonical.hs                  | 12 ++--
 compiler/typecheck/TcErrors.hs                     |  2 +-
 compiler/typecheck/TcForeign.hs                    |  2 +-
 compiler/typecheck/TcGenFunctor.hs                 |  2 +-
 compiler/typecheck/TcHsType.hs                     |  2 +-
 compiler/typecheck/TcInteract.hs                   |  4 +-
 compiler/typecheck/TcType.hs                       | 65 ++++++------------
 compiler/typecheck/TcTypeable.hs                   |  4 +-
 compiler/typecheck/TcUnify.hs                      | 22 +++----
 compiler/typecheck/TcValidity.hs                   |  8 +--
 compiler/types/Kind.hs                             | 17 +++--
 compiler/types/Type.hs                             | 77 ++++++++++++++++++----
 compiler/types/Type.hs-boot                        |  3 +-
 compiler/types/Unify.hs                            | 13 ++--
 .../tests/roles/should_compile/Roles14.stderr      |  5 +-
 testsuite/tests/roles/should_compile/Roles3.stderr | 12 ++--
 testsuite/tests/roles/should_compile/Roles4.stderr |  7 +-
 testsuite/tests/roles/should_compile/T8958.stderr  |  8 ++-
 testsuite/tests/typecheck/should_run/T11715.hs     | 21 ++++++
 testsuite/tests/typecheck/should_run/T11715.stderr |  3 +
 testsuite/tests/typecheck/should_run/TypeOf.stdout | 12 ++--
 .../tests/typecheck/should_run/TypeRep.stdout      | 10 +--
 testsuite/tests/typecheck/should_run/all.T         |  1 +
 25 files changed, 212 insertions(+), 125 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 6a1331ca25fcf1b20de1b44d9f2d50cbab5056f9


More information about the ghc-commits mailing list