--TEST-- Broken dependencies should not lead to a replacer being installed which is not mentioned by name --COMPOSER-- { "repositories": [ { "type": "package", "package": [ { "name": "a/a", "version": "1.0.0" }, { "name": "b/b", "version": "1.0.0", "require": {"c/c": "1.*"} }, { "name": "c/c", "version": "1.0.0", "replace": {"a/a": "1.0.0" },"require":{"x/x": "1.0"}}, { "name": "d/d", "version": "1.0.0", "replace": {"a/a": "1.0.0", "c/c":"1.0.0" }} ] } ], "require": { "a/a": "1.*", "b/b": "1.*" } } --RUN-- update --EXPECT-OUTPUT-- Loading composer repositories with package information Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - Root composer.json requires b/b 1.* -> satisfiable by b/b[1.0.0]. - b/b 1.0.0 requires c/c 1.* -> satisfiable by c/c[1.0.0]. - c/c 1.0.0 requires x/x 1.0 -> could not be found in any version, there may be a typo in the package name. Potential causes: - A typo in the package name - The package is not available in a stable-enough version according to your minimum-stability setting see for more details. - It's a private package and you forgot to add a custom repository to find it Read for further common problems. --EXPECT-EXIT-CODE-- 2 --EXPECT--