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'], <<