From c808656bc4c5c37057088b8ac45b40749ce98e0b Mon Sep 17 00:00:00 2001 From: "Edward Z. Yang" <ezyang@cs.stanford.edu> Date: Thu, 9 Jul 2015 10:21:51 -0700 Subject: [PATCH] Make mkQualPackage more robust when package key is bad. Signed-off-by: Edward Z. Yang <ezyang@cs.stanford.edu> Test Plan: validate Reviewers: bgamari, austin Subscribers: thomie Differential Revision: https://phabricator.haskell.org/D1060 GHC Trac Issues: #10624 --- 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 02592a3c1480..dfc394d71576 100644 --- a/compiler/main/HscTypes.hs +++ b/compiler/main/HscTypes.hs @@ -1588,15 +1588,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@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. -- GitLab