diff --git a/src/Composer/Factory.php b/src/Composer/Factory.php index b41bfd60d..5b2539672 100644 --- a/src/Composer/Factory.php +++ b/src/Composer/Factory.php @@ -289,7 +289,9 @@ class Factory $composer->setPluginManager($pm); // purge packages if they have been deleted on the filesystem - $this->purgePackages($rm->getLocalRepository(), $im); + if ($rm->getLocalRepository()) { + $this->purgePackages($rm->getLocalRepository(), $im); + } if (!$disablePlugins) { $pm->loadInstalledPlugins(); diff --git a/tests/Composer/Test/Mock/FactoryMock.php b/tests/Composer/Test/Mock/FactoryMock.php index 75d2a23bb..ccbda8040 100644 --- a/tests/Composer/Test/Mock/FactoryMock.php +++ b/tests/Composer/Test/Mock/FactoryMock.php @@ -16,6 +16,7 @@ use Composer\Config; use Composer\Factory; use Composer\Repository; use Composer\Repository\RepositoryManager; +use Composer\Repository\WritableRepositoryInterface; use Composer\Installer; use Composer\IO\IOInterface; @@ -46,7 +47,7 @@ class FactoryMock extends Factory { } - protected function purgePackages(Repository\RepositoryManager $rm, Installer\InstallationManager $im) + protected function purgePackages(WritableRepositoryInterface $repo, Installer\InstallationManager $im) { } }