mirror of
				https://github.com/rust-lang/rust-analyzer.git
				synced 2025-10-30 19:49:36 +00:00 
			
		
		
		
	Merge pull request #20665 from ChayimFriedman2/error-notable
fix: Don't mark unknown type as implementing every notable trait
This commit is contained in:
		
						commit
						3a675445ac
					
				
					 2 changed files with 29 additions and 0 deletions
				
			
		|  | @ -483,6 +483,12 @@ fn notable_traits<'db>( | ||||||
|     db: &'db RootDatabase, |     db: &'db RootDatabase, | ||||||
|     ty: &hir::Type<'db>, |     ty: &hir::Type<'db>, | ||||||
| ) -> Vec<(hir::Trait, Vec<(Option<hir::Type<'db>>, hir::Name)>)> { | ) -> Vec<(hir::Trait, Vec<(Option<hir::Type<'db>>, hir::Name)>)> { | ||||||
|  |     if ty.is_unknown() { | ||||||
|  |         // The trait solver returns "yes" to the question whether the error type
 | ||||||
|  |         // impls any trait, and we don't want to show it as having any notable trait.
 | ||||||
|  |         return Vec::new(); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|     db.notable_traits_in_deps(ty.krate(db).into()) |     db.notable_traits_in_deps(ty.krate(db).into()) | ||||||
|         .iter() |         .iter() | ||||||
|         .flat_map(|it| &**it) |         .flat_map(|it| &**it) | ||||||
|  |  | ||||||
|  | @ -11097,3 +11097,26 @@ impl Enum<'_, Borrowed> { | ||||||
|         "#]],
 |         "#]],
 | ||||||
|     ); |     ); | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | #[test] | ||||||
|  | fn unknown_should_not_implement_notable_traits() { | ||||||
|  |     check( | ||||||
|  |         r#" | ||||||
|  | //- minicore: future, iterator
 | ||||||
|  | fn foo() { | ||||||
|  |     let x$0; | ||||||
|  | } | ||||||
|  |     "#,
 | ||||||
|  |         expect![[r#" | ||||||
|  |             *x* | ||||||
|  | 
 | ||||||
|  |             ```rust | ||||||
|  |             let x: {unknown} | ||||||
|  |             ``` | ||||||
|  | 
 | ||||||
|  |             --- | ||||||
|  | 
 | ||||||
|  |             no Drop | ||||||
|  |         "#]],
 | ||||||
|  |     ); | ||||||
|  | } | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Shoyu Vanilla (Flint)
						Shoyu Vanilla (Flint)