diff options
author | RyanGlScott <ryan.gl.scott@gmail.com> | 2015-12-21 16:11:25 +0100 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2015-12-21 19:09:55 +0100 |
commit | ee6fba89b066fdf8408e6a18db343a4177e613f6 (patch) | |
tree | f60d6c0495bbfdaf29ff642caaf4deefb717b25d /testsuite/tests/generics/GenDerivOutput1_1.stderr | |
parent | 99b956ef1d4bbb2252c0bbaa956094c2f837d111 (diff) | |
download | haskell-ee6fba89b066fdf8408e6a18db343a4177e613f6.tar.gz |
Encode strictness in GHC generics metadata
This augments `MetaSel` with a `Bang` field, which gives generic
programmers access to the following information about each field
selector:
* `SourceUnpackedness`: whether a field was marked `{-# NOUNPACK #-}`,
`{-# UNPACK #-}`, or not
* `SourceStrictness`: whether a field was given a strictness (`!`) or
laziness (`~`) annotation
* `DecidedStrictness`: what strictness GHC infers for a field during
compilation, which may be influenced by optimization levels,
`-XStrictData`, `-funbox-strict-fields`, etc.
Unlike in Phab:D1603, generics does not grant a programmer the ability
to "splice" in metadata, so there is no issue including
`DecidedStrictness` with `Bang` (whereas in Template Haskell, it had to
be split off).
One consequence of this is that `MetaNoSel` had to be removed, since it
became redundant. The `NoSelector` empty data type was also removed for
similar reasons.
Fixes #10716.
Test Plan: ./validate
Reviewers: dreixel, goldfire, kosmikus, austin, hvr, bgamari
Reviewed By: bgamari
Subscribers: thomie
Differential Revision: https://phabricator.haskell.org/D1646
GHC Trac Issues: #10716
Diffstat (limited to 'testsuite/tests/generics/GenDerivOutput1_1.stderr')
-rw-r--r-- | testsuite/tests/generics/GenDerivOutput1_1.stderr | 200 |
1 files changed, 132 insertions, 68 deletions
diff --git a/testsuite/tests/generics/GenDerivOutput1_1.stderr b/testsuite/tests/generics/GenDerivOutput1_1.stderr index 736637f6c2..d76d6bb593 100644 --- a/testsuite/tests/generics/GenDerivOutput1_1.stderr +++ b/testsuite/tests/generics/GenDerivOutput1_1.stderr @@ -155,7 +155,7 @@ Derived instances: GHC.Generics representation types: - type GHC.Generics.Rep1 CanDoRep1_1.Dd = GHC.Generics.D1 + type GHC.Generics.Rep1 CanDoRep1_1.Dd = GHC.Generics.D1 ('GHC.Generics.MetaData "Dd" "CanDoRep1_1" "main" 'GHC.Types.False) (GHC.Generics.C1 @@ -167,15 +167,23 @@ GHC.Generics representation types: "D1d" 'GHC.Generics.PrefixI 'GHC.Types.True) - (GHC.Generics.S1 - ('GHC.Generics.MetaSel "d11d") - GHC.Generics.Par1 - GHC.Generics.:*: GHC.Generics.S1 + (GHC.Generics.S1 + ('GHC.Generics.MetaSel + ('GHC.Base.Just "d11d") + 'GHC.Generics.NoSourceUnpackedness + 'GHC.Generics.NoSourceStrictness + 'GHC.Generics.DecidedLazy) + GHC.Generics.Par1 + GHC.Generics.:*: GHC.Generics.S1 ('GHC.Generics.MetaSel - "d12d") - (GHC.Generics.Rec1 - CanDoRep1_1.Dd))) - type GHC.Generics.Rep (CanDoRep1_1.Dd a) = GHC.Generics.D1 + ('GHC.Base.Just + "d12d") + 'GHC.Generics.NoSourceUnpackedness + 'GHC.Generics.NoSourceStrictness + 'GHC.Generics.DecidedLazy) + (GHC.Generics.Rec1 + CanDoRep1_1.Dd))) + type GHC.Generics.Rep (CanDoRep1_1.Dd a) = GHC.Generics.D1 ('GHC.Generics.MetaData "Dd" "CanDoRep1_1" "main" 'GHC.Types.False) (GHC.Generics.C1 @@ -187,16 +195,24 @@ GHC.Generics representation types: "D1d" 'GHC.Generics.PrefixI 'GHC.Types.True) - (GHC.Generics.S1 - ('GHC.Generics.MetaSel "d11d") - (GHC.Generics.Rec0 a) - GHC.Generics.:*: GHC.Generics.S1 + (GHC.Generics.S1 + ('GHC.Generics.MetaSel + ('GHC.Base.Just "d11d") + 'GHC.Generics.NoSourceUnpackedness + 'GHC.Generics.NoSourceStrictness + 'GHC.Generics.DecidedLazy) + (GHC.Generics.Rec0 a) + GHC.Generics.:*: GHC.Generics.S1 ('GHC.Generics.MetaSel - "d12d") - (GHC.Generics.Rec0 - (CanDoRep1_1.Dd - a)))) - type GHC.Generics.Rep (CanDoRep1_1.Dc a) = GHC.Generics.D1 + ('GHC.Base.Just + "d12d") + 'GHC.Generics.NoSourceUnpackedness + 'GHC.Generics.NoSourceStrictness + 'GHC.Generics.DecidedLazy) + (GHC.Generics.Rec0 + (CanDoRep1_1.Dd + a)))) + type GHC.Generics.Rep (CanDoRep1_1.Dc a) = GHC.Generics.D1 ('GHC.Generics.MetaData "Dc" "CanDoRep1_1" "main" 'GHC.Types.False) (GHC.Generics.C1 @@ -208,16 +224,24 @@ GHC.Generics representation types: "D1c" 'GHC.Generics.PrefixI 'GHC.Types.True) - (GHC.Generics.S1 - ('GHC.Generics.MetaSel "d11c") - (GHC.Generics.Rec0 a) - GHC.Generics.:*: GHC.Generics.S1 + (GHC.Generics.S1 + ('GHC.Generics.MetaSel + ('GHC.Base.Just "d11c") + 'GHC.Generics.NoSourceUnpackedness + 'GHC.Generics.NoSourceStrictness + 'GHC.Generics.DecidedLazy) + (GHC.Generics.Rec0 a) + GHC.Generics.:*: GHC.Generics.S1 ('GHC.Generics.MetaSel - "d12c") - (GHC.Generics.Rec0 - (CanDoRep1_1.Dc - a)))) - type GHC.Generics.Rep1 CanDoRep1_1.Db = GHC.Generics.D1 + ('GHC.Base.Just + "d12c") + 'GHC.Generics.NoSourceUnpackedness + 'GHC.Generics.NoSourceStrictness + 'GHC.Generics.DecidedLazy) + (GHC.Generics.Rec0 + (CanDoRep1_1.Dc + a)))) + type GHC.Generics.Rep1 CanDoRep1_1.Db = GHC.Generics.D1 ('GHC.Generics.MetaData "Db" "CanDoRep1_1" "main" 'GHC.Types.False) (GHC.Generics.C1 @@ -229,15 +253,23 @@ GHC.Generics representation types: "D1b" 'GHC.Generics.PrefixI 'GHC.Types.True) - (GHC.Generics.S1 - ('GHC.Generics.MetaSel "d11b") - GHC.Generics.Par1 - GHC.Generics.:*: GHC.Generics.S1 + (GHC.Generics.S1 + ('GHC.Generics.MetaSel + ('GHC.Base.Just "d11b") + 'GHC.Generics.NoSourceUnpackedness + 'GHC.Generics.NoSourceStrictness + 'GHC.Generics.DecidedLazy) + GHC.Generics.Par1 + GHC.Generics.:*: GHC.Generics.S1 ('GHC.Generics.MetaSel - "d12b") - (GHC.Generics.Rec1 - CanDoRep1_1.Db))) - type GHC.Generics.Rep (CanDoRep1_1.Da a) = GHC.Generics.D1 + ('GHC.Base.Just + "d12b") + 'GHC.Generics.NoSourceUnpackedness + 'GHC.Generics.NoSourceStrictness + 'GHC.Generics.DecidedLazy) + (GHC.Generics.Rec1 + CanDoRep1_1.Db))) + type GHC.Generics.Rep (CanDoRep1_1.Da a) = GHC.Generics.D1 ('GHC.Generics.MetaData "Da" "CanDoRep1_1" "main" 'GHC.Types.False) (GHC.Generics.C1 @@ -249,16 +281,24 @@ GHC.Generics representation types: "D1" 'GHC.Generics.PrefixI 'GHC.Types.True) - (GHC.Generics.S1 - ('GHC.Generics.MetaSel "d11a") - (GHC.Generics.Rec0 a) - GHC.Generics.:*: GHC.Generics.S1 + (GHC.Generics.S1 + ('GHC.Generics.MetaSel + ('GHC.Base.Just "d11a") + 'GHC.Generics.NoSourceUnpackedness + 'GHC.Generics.NoSourceStrictness + 'GHC.Generics.DecidedLazy) + (GHC.Generics.Rec0 a) + GHC.Generics.:*: GHC.Generics.S1 ('GHC.Generics.MetaSel - "d12a") - (GHC.Generics.Rec0 - (CanDoRep1_1.Da - a)))) - type GHC.Generics.Rep1 CanDoRep1_1.Da = GHC.Generics.D1 + ('GHC.Base.Just + "d12a") + 'GHC.Generics.NoSourceUnpackedness + 'GHC.Generics.NoSourceStrictness + 'GHC.Generics.DecidedLazy) + (GHC.Generics.Rec0 + (CanDoRep1_1.Da + a)))) + type GHC.Generics.Rep1 CanDoRep1_1.Da = GHC.Generics.D1 ('GHC.Generics.MetaData "Da" "CanDoRep1_1" "main" 'GHC.Types.False) (GHC.Generics.C1 @@ -270,15 +310,23 @@ GHC.Generics representation types: "D1" 'GHC.Generics.PrefixI 'GHC.Types.True) - (GHC.Generics.S1 - ('GHC.Generics.MetaSel "d11a") - GHC.Generics.Par1 - GHC.Generics.:*: GHC.Generics.S1 + (GHC.Generics.S1 + ('GHC.Generics.MetaSel + ('GHC.Base.Just "d11a") + 'GHC.Generics.NoSourceUnpackedness + 'GHC.Generics.NoSourceStrictness + 'GHC.Generics.DecidedLazy) + GHC.Generics.Par1 + GHC.Generics.:*: GHC.Generics.S1 ('GHC.Generics.MetaSel - "d12a") - (GHC.Generics.Rec1 - CanDoRep1_1.Da))) - type GHC.Generics.Rep (CanDoRep1_1.Db a) = GHC.Generics.D1 + ('GHC.Base.Just + "d12a") + 'GHC.Generics.NoSourceUnpackedness + 'GHC.Generics.NoSourceStrictness + 'GHC.Generics.DecidedLazy) + (GHC.Generics.Rec1 + CanDoRep1_1.Da))) + type GHC.Generics.Rep (CanDoRep1_1.Db a) = GHC.Generics.D1 ('GHC.Generics.MetaData "Db" "CanDoRep1_1" "main" 'GHC.Types.False) (GHC.Generics.C1 @@ -290,16 +338,24 @@ GHC.Generics representation types: "D1b" 'GHC.Generics.PrefixI 'GHC.Types.True) - (GHC.Generics.S1 - ('GHC.Generics.MetaSel "d11b") - (GHC.Generics.Rec0 a) - GHC.Generics.:*: GHC.Generics.S1 + (GHC.Generics.S1 + ('GHC.Generics.MetaSel + ('GHC.Base.Just "d11b") + 'GHC.Generics.NoSourceUnpackedness + 'GHC.Generics.NoSourceStrictness + 'GHC.Generics.DecidedLazy) + (GHC.Generics.Rec0 a) + GHC.Generics.:*: GHC.Generics.S1 ('GHC.Generics.MetaSel - "d12b") - (GHC.Generics.Rec0 - (CanDoRep1_1.Db - a)))) - type GHC.Generics.Rep1 CanDoRep1_1.Dc = GHC.Generics.D1 + ('GHC.Base.Just + "d12b") + 'GHC.Generics.NoSourceUnpackedness + 'GHC.Generics.NoSourceStrictness + 'GHC.Generics.DecidedLazy) + (GHC.Generics.Rec0 + (CanDoRep1_1.Db + a)))) + type GHC.Generics.Rep1 CanDoRep1_1.Dc = GHC.Generics.D1 ('GHC.Generics.MetaData "Dc" "CanDoRep1_1" "main" 'GHC.Types.False) (GHC.Generics.C1 @@ -311,13 +367,21 @@ GHC.Generics representation types: "D1c" 'GHC.Generics.PrefixI 'GHC.Types.True) - (GHC.Generics.S1 - ('GHC.Generics.MetaSel "d11c") - GHC.Generics.Par1 - GHC.Generics.:*: GHC.Generics.S1 + (GHC.Generics.S1 + ('GHC.Generics.MetaSel + ('GHC.Base.Just "d11c") + 'GHC.Generics.NoSourceUnpackedness + 'GHC.Generics.NoSourceStrictness + 'GHC.Generics.DecidedLazy) + GHC.Generics.Par1 + GHC.Generics.:*: GHC.Generics.S1 ('GHC.Generics.MetaSel - "d12c") - (GHC.Generics.Rec1 - CanDoRep1_1.Dc))) + ('GHC.Base.Just + "d12c") + 'GHC.Generics.NoSourceUnpackedness + 'GHC.Generics.NoSourceStrictness + 'GHC.Generics.DecidedLazy) + (GHC.Generics.Rec1 + CanDoRep1_1.Dc))) |