diff options
| author | Stuart Cook <Zalathar@users.noreply.github.com> | 2025-04-02 13:10:40 +1100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-02 13:10:40 +1100 |
| commit | 2d43a8b20decd860d7737e10388e9f8974a20664 (patch) | |
| tree | 743d85b83a1d70b9397888ca91781ce63f0b21ed /compiler | |
| parent | 2311b342bc5cf09245d0e5636115a006b6ffa890 (diff) | |
| parent | 12604fa071b01f7342520224507e43e432294c2c (diff) | |
| download | rust-2d43a8b20decd860d7737e10388e9f8974a20664.tar.gz rust-2d43a8b20decd860d7737e10388e9f8974a20664.zip | |
Rollup merge of #139200 - xizheyin:issue-139174, r=compiler-errors
Skip suggest impl or dyn when poly trait is not a real trait Fixes #139174 When `poly_trait_ref` is not a real trait, we should stop suggesting `impl` and `dyn` to avoid false positives. 3 cases were added to the ui test. https://github.com/rust-lang/rust/blob/0b45675cfcec57f30a3794e1a1e18423aa9cf200/compiler/rustc_hir_analysis/src/hir_ty_lowering/lint.rs#L88-L93 In the first commit, I submitted the test and passed it. In the second commit, I modified the code and we can see the changes in the test. r? compiler
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/rustc_hir_analysis/src/hir_ty_lowering/lint.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/compiler/rustc_hir_analysis/src/hir_ty_lowering/lint.rs b/compiler/rustc_hir_analysis/src/hir_ty_lowering/lint.rs index 55886312284..8e62dce2191 100644 --- a/compiler/rustc_hir_analysis/src/hir_ty_lowering/lint.rs +++ b/compiler/rustc_hir_analysis/src/hir_ty_lowering/lint.rs @@ -86,6 +86,7 @@ impl<'tcx> dyn HirTyLowerer<'tcx> + '_ { "expected a type, found a trait" ); if self_ty.span.can_be_used_for_suggestions() + && poly_trait_ref.trait_ref.trait_def_id().is_some() && !self.maybe_suggest_impl_trait(self_ty, &mut diag) && !self.maybe_suggest_dyn_trait(self_ty, sugg, &mut diag) { |
