Wire in constraint tuples
This wires in the definitions of the constraint tuple classes. The key changes are in: * `GHC.Builtin.Types`, where the `mk_ctuple` function is used to define constraint tuple type constructors, data constructors, and superclass selector functions, and * `GHC.Builtin.Uniques`. In addition to wiring in the `Unique`s for constraint tuple type and data constructors, we now must wire in the superclass selector functions. Luckily, this proves to be not that challenging. See the newly added comments. Historical note: constraint tuples used to be wired-in until about five years ago, when commit 130e93aa turned them into known-key names. This was done as part of a larger refactor to reduce the number of special cases for constraint tuples, but the commit message notes that the main reason that constraint tuples were made known-key (as opposed to boxed/unboxed tuples, which are wired in) is because it was awkward to wire in the superclass selectors. This commit solves the problem of wiring in superclass selectors. Fixes #18635. ------------------------- Metric Decrease: T10421 T12150 T12227 T12234 T12425 T13056 T13253-spj T18282 T18304 T5321FD T5321Fun T5837 T9961 Metric Decrease (test_env='x86_64-linux-deb9-unreg-hadrian'): T12707 Metric Decrease (test_env='x86_64-darwin'): T4029 -------------------------
parent
2f7ef2fb
No related branches found
No related tags found
Pipeline #24936 passed with warnings
Stage: lint
Stage: quick-build
Stage: build
Stage: full-build
Stage: cleanup
Stage: packaging
Stage: testing
Stage: deploy
Showing
- compiler/GHC/Builtin/Types.hs 111 additions, 20 deletionscompiler/GHC/Builtin/Types.hs
- compiler/GHC/Builtin/Types.hs-boot 2 additions, 0 deletionscompiler/GHC/Builtin/Types.hs-boot
- compiler/GHC/Builtin/Uniques.hs 109 additions, 27 deletionscompiler/GHC/Builtin/Uniques.hs
- compiler/GHC/IfaceToCore.hs 3 additions, 4 deletionscompiler/GHC/IfaceToCore.hs
- compiler/GHC/Tc/Gen/HsType.hs 2 additions, 2 deletionscompiler/GHC/Tc/Gen/HsType.hs
- compiler/GHC/Types/Basic.hs 1 addition, 1 deletioncompiler/GHC/Types/Basic.hs
Loading