Skip to content
Snippets Groups Projects
Forked from Glasgow Haskell Compiler / GHC
6781 commits behind, 1 commit ahead of the upstream repository.
Ryan Scott's avatar
Ryan Scott authored
This patch removes the `con_g_args :: HsConDeclGADTDetails pass` and
`con_res_ty :: LHsType pass` fields of `ConDeclGADT` in favor of a unified
`con_body :: ConGadtSigBody pass` field. There are two major differences
between `HsConDeclGADTDetails` and `ConGadtSigBody`:

1. `HsConDeclGADTDetails` only contains the argument type, while
   `ConGadtSigBody` contains both the argument and result types.
2. The `PrefixConGADT` constructor of `ConGadtSigBody` now uses a new
   `PrefixConGadtSigBody` data type. `PrefixConGadtSigBody` closely mirrors the
   structure of `HsType`, but with minor, data constructor–specific tweaks.
   This will become vital in a future patch which implements nested `forall`s
   and contexts in prefix GADT constructor types (see #18389).

Besides the refactoring in the GHC API (and some minor changes in
GHC AST–related test cases) this does not introduce any user-visible
changes in behavior.
e4617b7c
History