|  | /// Tests that suggestions to add trait bounds that would enable using a method include appropriate | 
|  | /// placeholder arguments for that trait. | 
|  |  | 
|  | trait Trait<I> { | 
|  | fn method(&self) {} | 
|  | } | 
|  |  | 
|  | trait Trait2<'a, A, const B: u8, C = (), const D: u8 = 0> { | 
|  | fn method2(&self) {} | 
|  | } | 
|  |  | 
|  | fn foo<T>(value: T) { | 
|  | //~^ SUGGESTION : Trait</* I */> | 
|  | //~| SUGGESTION : Trait2</* 'a, A, B */> | 
|  | value.method(); | 
|  | //~^ ERROR no method named `method` found for type parameter `T` in the current scope [E0599] | 
|  | value.method2(); | 
|  | //~^ ERROR no method named `method2` found for type parameter `T` in the current scope [E0599] | 
|  | } | 
|  |  | 
|  | fn bar(value: impl Copy) { | 
|  | //~^ SUGGESTION + Trait</* I */> | 
|  | //~| SUGGESTION + Trait2</* 'a, A, B */> | 
|  | value.method(); | 
|  | //~^ ERROR no method named `method` found for type parameter `impl Copy` in the current scope [E0599] | 
|  | value.method2(); | 
|  | //~^ ERROR no method named `method2` found for type parameter `impl Copy` in the current scope [E0599] | 
|  | } | 
|  |  | 
|  | fn main() {} |