Deduplicate regions ids before merging them

The merging code does not expect to see any duplicates.
This commit is contained in:
Tomasz Miąsko 2021-10-13 00:00:00 +00:00
parent 9475e609b8
commit 8aaf4ab59a
2 changed files with 20 additions and 0 deletions

View File

@ -192,6 +192,7 @@ struct ConnectedRegion {
.collect::<SmallVec<[RegionId; 8]>>();
// Sort the id list so that the algorithm is deterministic
ids.sort_unstable();
ids.dedup();
let ids = ids;
match &ids[..] {
// Create a new connected region

View File

@ -31,4 +31,23 @@ struct Foo {}
impl Bar<A> { fn foo() {} }
impl Bar<B> { fn foo() {} }
// Regression test for issue #89820:
impl Bar<u8> {
pub fn a() {}
pub fn aa() {}
}
impl Bar<u16> {
pub fn b() {}
pub fn bb() {}
}
impl Bar<u32> {
pub fn a() {}
pub fn aa() {}
pub fn bb() {}
pub fn b() {}
}
fn main() {}