Working through method breakage

stdlibprovides trait `Tr2`cratecalls `t.foo()` where `t`implements `Tr1`+`Tr2`upstream,2015 editionprovides trait `Tr1`with `foo()` methodstdlibprovides trait `Tr2`cratecalls `t.foo()` where `t`implements `Tr1`+`Tr2`upstream,2015 editionprovides trait `Tr1`with `foo()` methoddeveloped against Rust 2018 edition(no `foo()` method available on `Tr2` at this time)(Currently  sole resolution available)compiler detects both methods are available,signals ambiguity warningopt[crate edition < method edition]compiler detects both methods are available,signals ambiguity warningopt[crate edition = method edition]`Tr2::foo` remains tagged with 2021 editioncompiler detects both methods are available,signals ambiguity warningopt[crate edition = *method* edition (still)]now issues hard ambiguity errorcrate dev is forced to resolve ambiguity.opt[crate edition > method edition]t.foo()stdlib adds `Tr2::foo()`,tagged with current (2021) editiont.foo()crate upgrades to Rust 2021 editiont.foo()Rust releases 2024 editiont.foo()crate attempts upgrade to Rust 2024 editiont.foo()