diff --git a/src/Composer/Command/BaseDependencyCommand.php b/src/Composer/Command/BaseDependencyCommand.php
index 55b502e03..1f67f5bc3 100644
--- a/src/Composer/Command/BaseDependencyCommand.php
+++ b/src/Composer/Command/BaseDependencyCommand.php
@@ -126,6 +126,9 @@ abstract class BaseDependencyCommand extends BaseCommand
$extraNotice = ' (version provided by config.platform)';
}
$this->getIO()->writeError('Package "'.$needle.' '.$textConstraint.'" found in version "'.$matchedPackage->getPrettyVersion().'"'.$extraNotice.'.');
+ } elseif ($inverted) {
+ $this->getIO()->write('Package "'.$needle.'" '.$matchedPackage->getPrettyVersion().' is already installed! To find out why, run `composer why '.$needle.'`');
+ return 0;
}
// Include replaced packages for inverted lookups as they are then the actual starting point to consider
diff --git a/tests/Composer/Test/Command/BaseDependencyCommandTest.php b/tests/Composer/Test/Command/BaseDependencyCommandTest.php
index 0fad665ae..bc85d1899 100644
--- a/tests/Composer/Test/Command/BaseDependencyCommandTest.php
+++ b/tests/Composer/Test/Command/BaseDependencyCommandTest.php
@@ -464,11 +464,10 @@ OUTPUT
0
];
- yield 'there is no installed package depending on the package in versions not matching a specific version' => [
+ yield 'Package is already installed!' => [
['package' => 'vendor1/package1', 'version' => '^1.3'],
<<