rust/tests
Esteban Küber 35bde07115 Tweak detection of multiple crate versions to be more ecompassing
Previously, we only emitted the additional context if the type was in the same crate as the trait that appeared multiple times in the dependency tree. Now, we look at all traits looking for two with the same name in different crates with the same crate number, and we are more flexible looking for the types involved. This will work even if the type that implements the wrong trait version is from a different crate entirely.

```
error[E0277]: the trait bound `CustomErrorHandler: ErrorHandler` is not satisfied
 --> src/main.rs:5:17
  |
5 |     cnb_runtime(CustomErrorHandler {});
  |     ----------- ^^^^^^^^^^^^^^^^^^^^^ the trait `ErrorHandler` is not implemented for `CustomErrorHandler`
  |     |
  |     required by a bound introduced by this call
  |
help: you have multiple different versions of crate `c` in your dependency graph
 --> src/main.rs:1:5
  |
1 | use b::CustomErrorHandler;
  |     ^ one version of crate `c` is used here, as a dependency of crate `b`
2 | use c::cnb_runtime;
  |     ^ one version of crate `c` is used here, as a direct dependency of the current crate
note: two types coming from two different versions of the same crate are different types even if they look the same
 --> /home/gh-estebank/testcase-rustc-crate-version-mismatch/c-v0.2/src/lib.rs:1:1
  |
1 | pub trait ErrorHandler {}
  | ^^^^^^^^^^^^^^^^^^^^^^ this is the required trait
  |
 ::: /home/gh-estebank/testcase-rustc-crate-version-mismatch/b/src/lib.rs:1:1
  |
1 | pub struct CustomErrorHandler {}
  | ----------------------------- this type doesn't implement the required trait
  |
 ::: /home/gh-estebank/testcase-rustc-crate-version-mismatch/c-v0.1/src/lib.rs:1:1
  |
1 | pub trait ErrorHandler {}
  | ---------------------- this is the found trait
  = help: you can use `cargo tree` to explore your dependency tree
note: required by a bound in `cnb_runtime`
 --> /home/gh-estebank/testcase-rustc-crate-version-mismatch/c-v0.2/src/lib.rs:3:41
  |
3 | pub fn cnb_runtime(_error_handler: impl ErrorHandler) {}
  |                                         ^^^^^^^^^^^^ required by this bound in `cnb_runtime`
```

Fix #89143.
2024-11-07 20:12:04 +00:00
..
assembly Rollup merge of #132457 - taiki-e:needless-feature, r=workingjubilee 2024-11-02 08:33:13 +01:00
auxiliary Fix typo in tests/auxiliary/minicore.rs 2024-11-03 17:32:33 +09:00
codegen Auto merge of #131341 - taiki-e:ppc-clobber-abi, r=bzEq,workingjubilee 2024-11-05 03:13:47 +00:00
codegen-units
coverage coverage: Regression test for inlining into an uninstrumented crate 2024-11-02 23:20:14 +11:00
coverage-run-rustdoc
crashes Yeet effects feature 2024-11-03 18:59:31 +00:00
debuginfo Auto merge of #123550 - GnomedDev:remove-initial-arc, r=Noratrieb 2024-10-24 13:35:50 +00:00
incremental Bless incremental tests. 2024-10-04 23:50:01 +00:00
mir-opt Add a mir-opt GVN test for #128299 2024-10-31 13:48:35 +08:00
pretty Add pretty, ui, and feature-gate tests for the enzyme/autodiff frontend 2024-10-11 20:38:43 +02:00
run-make Tweak detection of multiple crate versions to be more ecompassing 2024-11-07 20:12:04 +00:00
rustdoc remove support for extern-block const intrinsics 2024-11-04 23:27:45 +01:00
rustdoc-gui Add GUI regression test for variant structfields margins 2024-10-28 11:16:38 +01:00
rustdoc-js allow type-based search on foreign functions 2024-10-25 12:19:04 -05:00
rustdoc-js-std Fix rustdoc-js-std path-ordering test due to API removal 2024-10-02 11:15:48 +02:00
rustdoc-json Rename Receiver -> LegacyReceiver 2024-10-22 12:55:16 +00:00
rustdoc-ui Add UI regressions tests for rustdoc --show-coverage option 2024-11-04 14:46:04 +01:00
ui Auto merge of #129884 - RalfJung:forbidden-target-features, r=workingjubilee 2024-11-05 16:25:45 +00:00
ui-fulldeps Don't test new error messages with the stage 0 compiler 2024-11-03 14:32:25 -08:00
COMPILER_TESTS.md