rust/tests/ui/error-codes
Alexander Zhang 48167bd4bd Avoid guessing unknown trait impl in suggestions
When a trait is used without specifying the implementation (e.g. calling
a non-member associated function without fully-qualified syntax) and
there are multiple implementations available, use a placeholder comment
for the implementation type in the suggestion instead of picking a
random implementation.

Example:

```
fn main() {
    let _ = Default::default();
}
```

Previous output:

```
error[E0790]: cannot call associated function on trait without specifying the corresponding `impl` type
 --> test.rs:2:13
  |
2 |     let _ = Default::default();
  |             ^^^^^^^^^^^^^^^^ cannot call associated function of trait
  |
help: use a fully-qualified path to a specific available implementation (273 found)
  |
2 |     let _ = <FileTimes as Default>::default();
  |             +++++++++++++        +
```

New output:

```
error[E0790]: cannot call associated function on trait without specifying the corresponding `impl` type
 --> test.rs:2:13
  |
2 |     let _ = Default::default();
  |             ^^^^^^^^^^^^^^^^ cannot call associated function of trait
  |
help: use a fully-qualified path to a specific available implementation (273 found)
  |
2 |     let _ = </* self type */ as Default>::default();
  |             +++++++++++++++++++        +
```
2023-06-22 16:37:52 -07:00
..
auxiliary
e0119
E0001.rs
E0001.stderr
E0004-2.rs
E0004-2.stderr
E0004.rs
E0004.stderr
E0005.rs
E0005.stderr
E0010-teach.rs
E0010-teach.stderr
E0010.rs
E0010.stderr
E0013.rs
E0013.stderr
E0015.rs
E0015.stderr
E0017.rs
E0017.stderr
E0023.rs
E0023.stderr
E0025.rs
E0025.stderr
E0026-teach.rs
E0026-teach.stderr Spelling - compiler 2023-04-17 16:09:18 -04:00
E0026.rs
E0026.stderr
E0027.rs
E0027.stderr
E0029-teach.rs
E0029-teach.stderr
E0029.rs
E0029.stderr
E0030-teach.rs
E0030-teach.stderr
E0030.rs
E0030.stderr
E0033-teach.rs
E0033-teach.stderr
E0033.rs
E0033.stderr
E0034.rs
E0034.stderr
E0038.rs
E0038.stderr
E0040.fixed
E0040.rs
E0040.stderr
E0044.rs
E0044.stderr
E0045.rs
E0045.stderr
E0049.rs
E0049.stderr
E0050.rs
E0050.stderr
E0054.rs
E0054.stderr
E0055.rs
E0055.stderr
E0057.rs
E0057.stderr
E0059.rs
E0059.stderr
E0060.rs
E0060.stderr
E0061.rs
E0061.stderr
E0062.rs
E0062.stderr
E0063.rs
E0063.stderr
E0067.rs
E0067.stderr
E0069.rs
E0069.stderr
E0070.rs
E0070.stderr
E0071.rs
E0071.stderr
E0075.rs
E0075.stderr
E0076.rs
E0076.stderr
E0077.rs
E0077.stderr
E0080.rs
E0080.stderr
E0081.rs
E0081.stderr
E0084.rs
E0084.stderr
E0091.rs
E0091.stderr
E0092.rs
E0092.stderr
E0093.rs
E0093.stderr
E0094.rs
E0094.stderr
E0106.rs
E0106.stderr
E0107.rs
E0107.stderr
E0109.rs
E0109.stderr
E0110.rs
E0110.stderr
E0116.rs
E0116.stderr
E0117.rs
E0117.stderr
E0118.rs
E0118.stderr
E0119.rs
E0119.stderr
E0120.rs
E0120.stderr
E0121.rs
E0121.stderr
E0124.rs
E0124.stderr
E0128.rs
E0128.stderr
E0130.rs
E0130.stderr
E0131.rs
E0131.stderr
E0132.rs
E0132.stderr
E0133.mir.stderr
E0133.rs
E0133.thir.stderr
E0138.rs
E0138.stderr
E0152.rs
E0152.stderr
E0161.base.stderr
E0161.rs
E0164.rs
E0164.stderr
E0184.rs
E0184.stderr
E0185.rs
E0185.stderr
E0186.rs
E0186.stderr
E0191.rs
E0191.stderr
E0194.rs
E0194.stderr
E0195.rs
E0195.stderr
E0197.rs
E0197.stderr
E0198.rs
E0198.stderr
E0199.rs
E0199.stderr
E0200.rs
E0200.stderr
E0201.rs
E0201.stderr
E0206.rs
E0206.stderr
E0207.rs
E0207.stderr
E0208.rs
E0208.stderr
E0214.rs
E0214.stderr
E0220.rs
E0220.stderr
E0221.rs
E0221.stderr
E0223.rs
E0223.stderr
E0225.rs
E0225.stderr
E0227.rs
E0227.stderr
E0229.rs
E0229.stderr
E0252.rs
E0252.stderr
E0253.rs
E0253.stderr
E0254.rs
E0254.stderr
E0255.rs
E0255.stderr
E0259.rs
E0259.stderr
E0260.rs
E0260.stderr
E0261.rs
E0261.stderr
E0262.rs
E0262.stderr
E0263.rs
E0263.stderr
E0264.rs
E0264.stderr
E0267.rs
E0267.stderr
E0268.rs
E0268.stderr
E0271.rs
E0271.stderr
E0275.rs
E0275.stderr
E0276.rs
E0276.stderr
E0277-2.rs
E0277-2.stderr
E0277-3.rs
E0277-3.stderr Tweak output for 'add line' suggestion 2023-04-12 22:50:10 +00:00
E0277.rs
E0277.stderr rustc_middle: Fix opt_item_ident for non-local def ids 2023-05-03 20:09:10 +03:00
E0282.rs
E0282.stderr
E0283.rs
E0283.stderr Avoid guessing unknown trait impl in suggestions 2023-06-22 16:37:52 -07:00
E0297.rs
E0297.stderr
E0308-2.rs
E0308-2.stderr
E0308-4.rs
E0308-4.stderr
E0308.rs
E0308.stderr
E0311.fixed
E0311.rs
E0311.stderr
E0328.rs
E0328.stderr
E0365.rs
E0365.stderr
E0370.rs
E0370.stderr
E0374.rs
E0374.stderr
E0375.rs
E0375.stderr
E0376.rs
E0376.stderr
E0377.rs
E0377.stderr
E0388.rs
E0388.stderr
E0389.rs
E0389.stderr tweak "make mut" spans when assigning to locals 2023-05-05 22:40:04 +12:00
E0390.rs
E0390.stderr
E0392.rs
E0392.stderr
E0393.rs
E0393.stderr
E0396-fixed.rs
E0396-fixed.stderr
E0396.rs
E0396.stderr
E0401.rs
E0401.stderr
E0403.rs
E0403.stderr
E0404.rs
E0404.stderr
E0405.rs
E0405.stderr
E0407.rs
E0407.stderr
E0408.rs
E0408.stderr
E0411.rs
E0411.stderr
E0412.rs
E0412.stderr
E0415.rs
E0415.stderr
E0416.rs
E0416.stderr
E0423.rs
E0423.stderr
E0424.rs
E0424.stderr
E0425.rs
E0425.stderr
E0426.rs
E0426.stderr
E0428.rs
E0428.stderr
E0429.rs
E0429.stderr
E0430.rs
E0430.stderr
E0431.rs
E0431.stderr
E0432.rs
E0432.stderr
E0433.rs
E0433.stderr
E0434.rs
E0434.stderr
E0435.fixed
E0435.rs
E0435.stderr
E0437.rs
E0437.stderr
E0438.rs
E0438.stderr
E0445.rs Private-in-public lints implementation 2023-06-12 01:02:19 +03:00
E0445.stderr Private-in-public lints implementation 2023-06-12 01:02:19 +03:00
E0446.rs
E0446.stderr
E0449.rs
E0449.stderr
E0451.rs
E0451.stderr
E0452.rs
E0452.stderr
E0453.rs
E0453.stderr
E0454.rs
E0454.stderr
E0458.rs
E0458.stderr
E0459.rs
E0459.stderr
E0462.rs
E0462.stderr
E0463.rs
E0463.stderr
E0464.rs
E0464.stderr
E0476.rs
E0476.stderr
E0478.rs
E0478.stderr
E0492.rs
E0492.stderr
E0496.rs
E0496.stderr
E0499.rs
E0499.stderr
E0501.rs
E0501.stderr
E0502.rs
E0502.stderr
E0503.rs
E0503.stderr
E0504.rs
E0504.stderr
E0505.rs
E0505.stderr
E0506.rs
E0506.stderr
E0507.rs
E0507.stderr
E0508-fail.rs
E0508-fail.stderr
E0508.rs
E0508.stderr
E0509.rs
E0509.stderr
E0511.rs
E0511.stderr
E0512.rs
E0512.stderr
E0516.rs
E0516.stderr
E0517.rs
E0517.stderr
E0518.rs
E0518.stderr
E0519.rs
E0519.stderr
E0520.rs
E0520.stderr
E0522.rs
E0522.stderr
E0523.rs
E0523.stderr
E0527.rs
E0527.stderr
E0528.rs
E0528.stderr
E0529.rs
E0529.stderr
E0530.rs
E0530.stderr
E0532.rs
E0532.stderr
E0534.rs
E0534.stderr
E0559.rs
E0559.stderr
E0560.rs
E0560.stderr Don't mention already set fields 2023-06-05 21:00:08 +00:00
E0565-1.rs
E0565-1.stderr
E0565-2.rs
E0565-2.stderr
E0565.rs
E0565.stderr
E0572.rs
E0572.stderr
E0582.rs
E0582.stderr
E0583.rs
E0583.stderr
E0585.rs
E0585.stderr
E0586.rs
E0586.stderr
E0594.rs
E0594.stderr
E0596.rs
E0596.stderr
E0597.rs
E0597.stderr
E0599.rs
E0599.stderr
E0600.rs
E0600.stderr
E0601.rs
E0601.stderr
E0602.rs
E0602.stderr
E0603.rs
E0603.stderr
E0604.rs
E0604.stderr
E0605.rs
E0605.stderr
E0606.rs
E0606.stderr
E0607.rs
E0607.stderr
E0608.rs
E0608.stderr
E0609.rs
E0609.stderr
E0610.rs
E0610.stderr
E0614.rs
E0614.stderr
E0615.rs
E0615.stderr
E0616.rs
E0616.stderr
E0617.rs
E0617.stderr
E0618.rs
E0618.stderr
E0620.rs
E0620.stderr
E0621-does-not-trigger-for-closures.rs
E0621-does-not-trigger-for-closures.stderr
E0622.rs
E0622.stderr
E0624.rs
E0624.stderr
E0637.rs
E0637.stderr
E0642.fixed
E0642.rs
E0642.stderr
E0646.rs
E0646.stderr
E0647.rs
E0647.stderr
E0648.rs
E0648.stderr
E0657.rs
E0657.stderr
E0658.rs
E0658.stderr
E0659.rs
E0659.stderr
E0705.rs
E0705.stderr
E0711.rs
E0711.stderr
E0718.rs
E0718.stderr
E0719.rs Don't use implied trait predicates in gather_explicit_predicates_of 2023-05-01 15:45:28 +00:00
E0719.stderr Don't use implied trait predicates in gather_explicit_predicates_of 2023-05-01 15:45:28 +00:00
E0730.rs
E0730.stderr
E0746.rs Simplify suggestion when returning bare dyn trait 2023-05-18 01:47:55 +00:00
E0746.stderr Simplify suggestion when returning bare dyn trait 2023-05-18 01:47:55 +00:00
E0767.rs
E0767.stderr
E0771.rs improve diagnostics and bless tests 2023-05-05 21:42:54 +01:00
E0771.stderr improve diagnostics and bless tests 2023-05-05 21:42:54 +01:00
E0777.rs
E0777.stderr
E0778.rs
E0778.stderr
E0779.rs
E0779.stderr
E0789.rs
E0789.stderr
E0790.rs
E0790.stderr Avoid guessing unknown trait impl in suggestions 2023-06-22 16:37:52 -07:00
ex-E0611.rs
ex-E0611.stderr
ex-E0612.rs
ex-E0612.stderr