[commit: ghc] master: Make mkQualPackage more robust when package key is bad. (6f1c076)

git at git.haskell.org git at git.haskell.org
Thu Jul 9 18:04:33 UTC 2015


Repository : ssh://git@git.haskell.org/ghc

On branch  : master
Link       : http://ghc.haskell.org/trac/ghc/changeset/6f1c0766943cdb9a567c0e2b9d41c5e73c2ff5bc/ghc

>---------------------------------------------------------------

commit 6f1c0766943cdb9a567c0e2b9d41c5e73c2ff5bc
Author: Edward Z. Yang <ezyang at cs.stanford.edu>
Date:   Thu Jul 9 10:21:51 2015 -0700

    Make mkQualPackage more robust when package key is bad.
    
    Signed-off-by: Edward Z. Yang <ezyang at cs.stanford.edu>
    
    Test Plan: validate
    
    Reviewers: bgamari, austin
    
    Subscribers: thomie
    
    Differential Revision: https://phabricator.haskell.org/D1060
    
    GHC Trac Issues: #10624


>---------------------------------------------------------------

6f1c0766943cdb9a567c0e2b9d41c5e73c2ff5bc
 compiler/main/HscTypes.hs | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/compiler/main/HscTypes.hs b/compiler/main/HscTypes.hs
index c2a5153..b7707f8 100644
--- a/compiler/main/HscTypes.hs
+++ b/compiler/main/HscTypes.hs
@@ -1620,15 +1620,14 @@ mkQualPackage dflags pkg_key
         -- Skip the lookup if it's main, since it won't be in the package
         -- database!
      = False
-     | searchPackageId dflags pkgid `lengthIs` 1
+     | Just pkgid <- mb_pkgid
+     , searchPackageId dflags pkgid `lengthIs` 1
         -- this says: we are given a package pkg-0.1 at MMM, are there only one
         -- exposed packages whose package ID is pkg-0.1?
      = False
      | otherwise
      = True
-     where pkg = fromMaybe (pprPanic "qual_pkg" (ftext (packageKeyFS pkg_key)))
-                    (lookupPackage dflags pkg_key)
-           pkgid = sourcePackageId pkg
+     where mb_pkgid = fmap sourcePackageId (lookupPackage dflags pkg_key)
 
 -- | A function which only qualifies package names if necessary; but
 -- qualifies all other identifiers.



More information about the ghc-commits mailing list