Make type import/export API Annotation friendly
authorAlan Zimmerman <alan.zimm@gmail.com>
Mon, 23 Jan 2017 18:23:28 +0000 (20:23 +0200)
committerAlan Zimmerman <alan.zimm@gmail.com>
Thu, 26 Jan 2017 13:20:14 +0000 (15:20 +0200)
commit0d1cb1574dd58d1026cac812e2098135823fa419
tree2c7955bc45a085cf54bab5c7204f9ebd24686adf
parentff9355e48d0cb04b3adf26e27e12e128f79618f4
Make type import/export API Annotation friendly

Summary:
At the moment an export of the form

   type C(..)

is parsed by the rule

```
  |  'type' oqtycon           {% amms (mkTypeImpExp (sLL $1 $> (unLoc $2)))
                                     [mj AnnType $1,mj AnnVal $2] }
```

This means that the origiinal oqtycon loses its location which is then retained
in the AnnVal annotation.

The problem is if the oqtycon has its own annotations, these get lost.

e.g. in

  type (?)(..)

the parens annotations for (?) get lost.

This patch adds a wrapper around the name in the IE type to

(a) provide a distinct location for the adornment annotation and

(b) identify the specific adornment, for use in the pretty printer rather than
occName magic.

Updates haddock submodule

Test Plan: ./validate

Reviewers: mpickering, dfeuer, bgamari, austin

Reviewed By: dfeuer

Subscribers: dfeuer, thomie, mpickering

Differential Revision: https://phabricator.haskell.org/D3016

GHC Trac Issues: #13163
12 files changed:
compiler/hsSyn/HsImpExp.hs
compiler/parser/Parser.y
compiler/parser/RdrHsSyn.hs
compiler/rename/RnNames.hs
compiler/typecheck/TcRnExports.hs
testsuite/driver/extra_files.py
testsuite/tests/ghc-api/annotations/Makefile
testsuite/tests/ghc-api/annotations/T13163.stdout [new file with mode: 0644]
testsuite/tests/ghc-api/annotations/Test13163.hs [new file with mode: 0644]
testsuite/tests/ghc-api/annotations/all.T
utils/check-ppr/README
utils/haddock