diff --git a/src/Composer/Downloader/DownloadManager.php b/src/Composer/Downloader/DownloadManager.php index 344d58a19..8a9970659 100644 --- a/src/Composer/Downloader/DownloadManager.php +++ b/src/Composer/Downloader/DownloadManager.php @@ -101,7 +101,6 @@ class DownloadManager * Returns downloader for a specific installation type. * * @param string $type installation type - * * @return DownloaderInterface * * @throws \InvalidArgumentException if downloader for provided type is not registered @@ -120,8 +119,7 @@ class DownloadManager * Returns downloader for already installed package. * * @param PackageInterface $package package instance - * - * @return DownloaderInterface + * @return DownloaderInterface|null * * @throws \InvalidArgumentException if package has no installation source specified * @throws \LogicException if specific downloader used to load package with @@ -131,6 +129,10 @@ class DownloadManager { $installationSource = $package->getInstallationSource(); + if ('metapackage' === $package->getType()) { + return; + } + if ('dist' === $installationSource) { $downloader = $this->getDownloader($package->getDistType()); } elseif ('source' === $installationSource) {