--TEST--
Updating an aliased package where the old alias matches the new package should not fail
--COMPOSER--
{
    "repositories": [
        {
            "type": "package",
            "package": [
                {
                    "name": "a/a", "version": "1.10.x-dev",
                    "extra": { "branch-alias": { "dev-master": "1.10.x-dev" } },
                    "source": { "type": "git", "url": "", "reference": "downgradedref" }
                },
                {
                    "name": "a/a", "version": "dev-master",
                    "extra": { "branch-alias": { "dev-master": "2.x-dev" } },
                    "source": { "type": "git", "url": "", "reference": "newref" }
                }
            ]
        }
    ],
    "require": {
        "a/a": "^1.0"
    },
    "minimum-stability": "dev"
}
--LOCK--
{
    "_": "outdated lock file, should not have to be loaded in an update",
    "packages": [
        {
            "name": "a/a", "version": "dev-master",
            "extra": { "branch-alias": { "dev-master": "1.10.x-dev" } },
            "source": { "type": "git", "url": "", "reference": "installedref" }
        }
    ],
    "packages-dev": [],
    "aliases": [],
    "minimum-stability": "dev",
    "stability-flags": [],
    "prefer-stable": false,
    "prefer-lowest": false
}
--INSTALLED--
[
    {
        "name": "a/a", "version": "dev-master",
        "extra": { "branch-alias": { "dev-master": "1.10.x-dev" } },
        "source": { "type": "git", "url": "", "reference": "installedref" }
    }
]
--RUN--
update
--EXPECT-LOCK--
{
    "packages": [
        {
            "name": "a/a", "version": "1.10.x-dev",
            "extra": { "branch-alias": { "dev-master": "1.10.x-dev" } },
            "source": { "type": "git", "url": "", "reference": "downgradedref" },
            "type": "library"
        }
    ],
    "packages-dev": [],
    "aliases": [],
    "minimum-stability": "dev",
    "stability-flags": [],
    "prefer-stable": false,
    "prefer-lowest": false,
    "platform": [],
    "platform-dev": []
}
--EXPECT-INSTALLED--
[
    {
        "name": "a/a", "version": "1.10.x-dev",
        "source": { "type": "git", "url": "", "reference": "downgradedref" },
        "type": "library",
        "extra": { "branch-alias": { "dev-master": "1.10.x-dev" } }
    }
]
--EXPECT--
Marking a/a (1.10.x-dev installedref) as uninstalled, alias of a/a (dev-master installedref)
Downgrading a/a (dev-master installedref => 1.10.x-dev downgradedref)