diff options
author | Ryan Scott <ryan.gl.scott@gmail.com> | 2019-01-08 07:37:18 -0500 |
---|---|---|
committer | Ryan Scott <ryan.gl.scott@gmail.com> | 2019-01-08 07:37:18 -0500 |
commit | 6b70cf611e5ddc475edaa54b893d20990699ddb8 (patch) | |
tree | b8cacfce9a907079df9475a943caa9e7c8ce0085 /hadrian/src/Base.hs | |
parent | 6b5ec08a4a64525bae87a8c2202688ffc6f86aa8 (diff) | |
download | haskell-6b70cf611e5ddc475edaa54b893d20990699ddb8.tar.gz |
Be pickier about unsaturated synonyms in :kind
Summary:
We currently permit any and all uses of unsaturated type
synonyms and type families in GHCi's `:kind` command, which allows
strange interactions like this one:
```
> :set -XTypeFamilies -XPolyKinds
> type family Id (a :: k)
> type instance Id a = a
> type Foo x = Maybe
> :kind! Id Foo
```
This is probably a stretch too far, so this patch moves to disallow
unsaturated synonyms that aren't at the top level (we still want to
allow `:kind Id`, for instance). We do this by augmenting `GhciCtxt`
with an additional `Bool` field to indicate if we are at the
outermost level of the type being passed to `:kind` or not. See
`Note [Unsaturated type synonyms in GHCi]` in `TcValidity` for the
full story.
Test Plan: make test TEST=T16013
Reviewers: goldfire, bgamari
Reviewed By: goldfire
Subscribers: simonpj, goldfire, rwbarton, carter
GHC Trac Issues: #16013
Differential Revision: https://phabricator.haskell.org/D5471
Diffstat (limited to 'hadrian/src/Base.hs')
0 files changed, 0 insertions, 0 deletions