diff options
author | Ryan Scott <ryan.gl.scott@gmail.com> | 2017-03-02 20:16:28 -0500 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2017-03-02 20:16:29 -0500 |
commit | 0d2f733050ff656b827351108d988e09abc363fc (patch) | |
tree | 0ee6ec20903f22cbf8ace58841c0501376c3385c /compiler/iface/TcIface.hs-boot | |
parent | 615ded12f47d3685606bcfabb4f1980e748be1d9 (diff) | |
download | haskell-0d2f733050ff656b827351108d988e09abc363fc.tar.gz |
Read COMPLETE sets from external packages
Currently, `COMPLETE` pragmas are not read from external packages at
all, which quite limits their usefulness. This extends
`ExternalPackageState` to include `COMPLETE` sets from other packages,
and plumbs around the appropriate values to make it work the way you'd
expect it to.
Fixes #13350.
Test Plan: make test TEST=T13350
Reviewers: rwbarton, mpickering, austin, simonpj, bgamari
Reviewed By: simonpj
Subscribers: simonpj, thomie
Differential Revision: https://phabricator.haskell.org/D3257
Diffstat (limited to 'compiler/iface/TcIface.hs-boot')
-rw-r--r-- | compiler/iface/TcIface.hs-boot | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/compiler/iface/TcIface.hs-boot b/compiler/iface/TcIface.hs-boot index 9c1b16b520..4a99114fc0 100644 --- a/compiler/iface/TcIface.hs-boot +++ b/compiler/iface/TcIface.hs-boot @@ -1,18 +1,20 @@ module TcIface where -import IfaceSyn ( IfaceDecl, IfaceClsInst, IfaceFamInst, IfaceRule, IfaceAnnotation ) +import IfaceSyn ( IfaceDecl, IfaceClsInst, IfaceFamInst, IfaceRule, + IfaceAnnotation, IfaceCompleteMatch ) import TyCoRep ( TyThing ) import TcRnTypes ( IfL ) import InstEnv ( ClsInst ) import FamInstEnv ( FamInst ) import CoreSyn ( CoreRule ) -import HscTypes ( TypeEnv, VectInfo, IfaceVectInfo ) +import HscTypes ( TypeEnv, VectInfo, IfaceVectInfo, CompleteMatch ) import Module ( Module ) import Annotations ( Annotation ) -tcIfaceDecl :: Bool -> IfaceDecl -> IfL TyThing -tcIfaceRules :: Bool -> [IfaceRule] -> IfL [CoreRule] -tcIfaceVectInfo :: Module -> TypeEnv -> IfaceVectInfo -> IfL VectInfo -tcIfaceInst :: IfaceClsInst -> IfL ClsInst -tcIfaceFamInst :: IfaceFamInst -> IfL FamInst -tcIfaceAnnotations :: [IfaceAnnotation] -> IfL [Annotation] +tcIfaceDecl :: Bool -> IfaceDecl -> IfL TyThing +tcIfaceRules :: Bool -> [IfaceRule] -> IfL [CoreRule] +tcIfaceVectInfo :: Module -> TypeEnv -> IfaceVectInfo -> IfL VectInfo +tcIfaceInst :: IfaceClsInst -> IfL ClsInst +tcIfaceFamInst :: IfaceFamInst -> IfL FamInst +tcIfaceAnnotations :: [IfaceAnnotation] -> IfL [Annotation] +tcIfaceCompleteSigs :: [IfaceCompleteMatch] -> IfL [CompleteMatch] |