mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-29 19:47:38 +00:00
![]() Fix ICE Caused by Incorrectly Delaying E0107 Fixes #128249 For the following code: ```rust trait Foo<T> {} impl Foo<T: Default> for u8 {} ``` #126054 added some logic to delay emitting E0107 as the names of associated type `T` in the impl header and generic parameter `T` in `trait Foo` match. But it failed to ensure whether such unexpected associated type bounds are coming from a impl block header. This caused an ICE as the compiler was delaying E0107 for code like: ```rust trait Trait<Type> { type Type; fn method(&self) -> impl Trait<Type: '_>; } ``` because it assumed the associated type bound `Type: '_` is for the generic parameter `Type` in `trait Trait` since the names are same. This PR adds a check to ensure that E0107 is delayed only in the context of impl block header. |
||
---|---|---|
.. | ||
arena.rs | ||
def_path_hash_map.rs | ||
def.rs | ||
definitions.rs | ||
diagnostic_items.rs | ||
hir_id.rs | ||
hir.rs | ||
intravisit.rs | ||
lang_items.rs | ||
lib.rs | ||
pat_util.rs | ||
stable_hash_impls.rs | ||
target.rs | ||
tests.rs | ||
weak_lang_items.rs |