#![feature(specialization)] // Regression test for #52050: when inserting the blanket impl `I` // into the tree, we had to replace the child node for `Foo`, which // led to the structure of the tree being messed up. use std::iter::Iterator; trait IntoPyDictPointer { } struct Foo { } impl Iterator for Foo { type Item = (); fn next(&mut self) -> Option<()> { None } } impl IntoPyDictPointer for Foo { } impl IntoPyDictPointer for I where I: Iterator, { } impl IntoPyDictPointer for () //~ ERROR conflicting implementations { } fn main() { }