bors ffe95252bd Auto merge of #10954 - y21:issue10158, r=llogiq
[`derivable_impls`]: don't lint if `default()` call expr unsize-coerces to trait object

Fixes #10158.

This fixes a FP where the derive-generated Default impl would have different behavior because of unsize coercion from `Box<T>` to `Box<dyn Trait>`:
```rs
struct S {
  x: Box<dyn std::fmt::Debug>
}
impl Default for S {
  fn default() -> Self {
    Self {
      x: Box::<()>::default()
     // ^~ Box<()> coerces to Box<dyn Debug>
     // #[derive(Default)] would call Box::<dyn Debug>::default()
    }
  }
}
```
(this intentionally only looks for trait objects `dyn` specifically, and not any unsize coercion, e.g. `&[i32; 5]` to `&[i32]`, because that breaks existing tests and isn't actually problematic, as far as I can tell)

changelog: [`derivable_impls`]: don't lint if `default()` call expression unsize-coerces to trait object
2023-06-14 16:59:26 +00:00
..
2023-06-10 06:51:03 -05:00
2023-06-12 16:21:06 +01:00
2023-06-10 06:51:03 -05:00
2023-06-14 12:53:36 +09:00
2023-06-10 06:51:03 -05:00
2023-05-24 11:06:56 -05:00
2023-05-24 11:06:56 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-06 14:58:54 -04:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-09 15:32:42 -05:00
2023-06-09 15:32:42 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-05-31 17:30:23 -05:00
2023-05-31 17:30:23 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:04:34 +02:00
2023-06-12 16:04:34 +02:00
2023-06-12 16:04:34 +02:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-09 21:39:58 -04:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-06 22:56:57 +02:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-06 22:56:57 +02:00
2023-04-27 17:18:12 +00:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-09 21:39:58 -04:00
2023-06-09 21:39:58 -04:00
2023-06-06 22:56:57 +02:00
2023-05-21 15:07:53 +02:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-10 06:51:03 -05:00
2023-06-06 22:56:57 +02:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-10 06:51:03 -05:00
2023-06-12 16:21:06 +01:00
2023-05-23 00:35:00 -05:00
2023-06-10 06:51:03 -05:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-02 13:26:12 -05:00
2023-06-02 13:26:12 -05:00
2023-06-06 22:56:57 +02:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-10 06:51:03 -05:00
2023-05-22 23:00:28 -04:00
2023-05-22 23:00:28 -04:00
2023-05-22 20:02:45 -04:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-06 22:56:57 +02:00
2023-06-06 22:56:57 +02:00
2023-06-06 22:56:57 +02:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-12 16:21:06 +01:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-10 06:51:03 -05:00
2023-06-12 16:04:34 +02:00
2023-06-12 16:04:34 +02:00
2023-06-12 16:04:34 +02:00