Track specified/invisible more carefully.
authorRichard Eisenberg <eir@cis.upenn.edu>
Sat, 19 Mar 2016 20:55:50 +0000 (16:55 -0400)
committerRichard Eisenberg <eir@cis.upenn.edu>
Mon, 21 Mar 2016 16:16:12 +0000 (12:16 -0400)
commit35e937973f61a7e5534ecd0b1c67111cd82d4238
tree515dd4f04763c179dad1ae1ed29ed4e5b3459bc8
parent947709395015bd6122eedc6da5df356660e76208
Track specified/invisible more carefully.

In particular, this allows correct tracking of specified/invisible
for variables in Haskell98 data constructors and in pattern synonyms.
GADT-syntax constructors are harder, and are left until #11721.

This was all inspired by Simon's comments to my fix for #11512,
which this subsumes.

Test case: ghci/scripts/TypeAppData

[skip ci]  (The test case fails because of an unrelated problem
fixed in the next commit.)
29 files changed:
compiler/basicTypes/DataCon.hs
compiler/basicTypes/DataCon.hs-boot
compiler/basicTypes/MkId.hs
compiler/basicTypes/PatSyn.hs
compiler/iface/BuildTyCl.hs
compiler/iface/IfaceSyn.hs
compiler/iface/IfaceType.hs
compiler/iface/MkIface.hs
compiler/iface/TcIface.hs
compiler/prelude/TysWiredIn.hs
compiler/typecheck/TcHsSyn.hs
compiler/typecheck/TcHsType.hs
compiler/typecheck/TcInstDcls.hs
compiler/typecheck/TcPatSyn.hs
compiler/typecheck/TcRnTypes.hs
compiler/typecheck/TcTyClsDecls.hs
compiler/typecheck/TcType.hs
compiler/types/Coercion.hs
compiler/types/TyCoRep.hs
compiler/types/Type.hs
compiler/vectorise/Vectorise/Generic/PData.hs
compiler/vectorise/Vectorise/Type/TyConDecl.hs
docs/users_guide/glasgow_exts.rst
testsuite/tests/ghci/scripts/T11524a.stdout
testsuite/tests/ghci/scripts/TypeAppData.script [new file with mode: 0644]
testsuite/tests/ghci/scripts/TypeAppData.stdout [new file with mode: 0644]
testsuite/tests/ghci/scripts/all.T
testsuite/tests/rename/should_fail/rnfail055.stderr
testsuite/tests/roles/should_compile/Roles1.stderr