rust/tests/ui/rfcs/rfc-2397-do-not-recommend
Georg Semmler 9b45cfdbdd
Actually use the `#[do_not_recommend]` attribute if present
This change tweaks the error message generation to actually use the
`#[do_not_recommend]` attribute if present by just skipping the marked
trait impl in favour of the parent impl. It also adds a compile test for
this behaviour. Without this change the test would output the following
error:

```
error[E0277]: the trait bound `&str: Expression` is not satisfied
  --> /home/weiznich/Documents/rust/rust/tests/ui/diagnostic_namespace/do_not_recommend.rs:53:15
   |
LL |     SelectInt.check("bar");
   |               ^^^^^ the trait `Expression` is not implemented for `&str`, which is required by `&str: AsExpression<Integer>`
   |
   = help: the following other types implement trait `Expression`:
             Bound<T>
             SelectInt
note: required for `&str` to implement `AsExpression<Integer>`
  --> /home/weiznich/Documents/rust/rust/tests/ui/diagnostic_namespace/do_not_recommend.rs:26:13
   |
LL | impl<T, ST> AsExpression<ST> for T
   |             ^^^^^^^^^^^^^^^^     ^
LL | where
LL |     T: Expression<SqlType = ST>,
   |        ------------------------ unsatisfied trait bound introduced here
```

Note how that mentions `&str: Expression` before and now mentions `&str:
AsExpression<Integer>` instead which is much more helpful for users.

Open points for further changes before stabilization:

* We likely want to move the attribute to the `#[diagnostic]` namespace
to relax the guarantees given?
* How does it interact with the new trait solver?
2024-05-19 08:29:27 +02:00
..
feature-gate-do_not_recommend.rs Use root obligation on E0277 for some cases 2024-03-03 18:53:35 +00:00
feature-gate-do_not_recommend.stderr Actually use the `#[do_not_recommend]` attribute if present 2024-05-19 08:29:27 +02:00
incorrect-locations.rs Better group RFC ui tests together 2023-06-05 16:09:46 +00:00
incorrect-locations.stderr Better group RFC ui tests together 2023-06-05 16:09:46 +00:00
unstable-feature.rs Better group RFC ui tests together 2023-06-05 16:09:46 +00:00
unstable-feature.stderr Bless tests 2024-01-13 12:46:58 -05:00