rust/compiler
Matthias Krüger 78376fd39c
Rollup merge of #150558 - estebank:multiple-dep-versions, r=jieyouxu
Detect cases where `?` is applied on a type that could be coming from a different crate version than expected

```
error[E0277]: `?` couldn't convert the error to `dependency::Error`
  --> replaced
   |
LL | fn main() -> Result<(), Error> {
   |              ----------------- expected `dependency::Error` because of this
...
LL |     Err(Error2)?;
   |     -----------^ the trait `From<Error2>` is not implemented for `dependency::Error`
   |     |
   |     this can't be annotated with `?` because it has type `Result<_, Error2>`
   |
   = note: the question mark operation (`?`) implicitly performs a conversion on the error value using the `From` trait
help: the trait `From<Error2>` is not implemented for `dependency::Error`
      but trait `From<()>` is implemented for it
  --> replaced
   |
LL | impl From<()> for Error {
   | ^^^^^^^^^^^^^^^^^^^^^^^
   = help: for that trait implementation, expected `()`, found `Error2`
   = note: there are multiple different versions of crate `dependency` in the dependency graph
   = help: you can use `cargo tree` to explore your dependency tree
```

The existing checks rely on having access to the actual types/traits that diverged to detect they are called the same, come from different crates with the same name. The new check is less specific, merely looking to see if the crate name the involved type belongs has multiple crates.

CC rust-lang/rust#78552.
2026-01-03 10:09:29 +01:00
..
rustc Auto merge of #148925 - madsmtm:jemalloc-perf, r=Kobzol 2025-11-23 20:34:07 +00:00
rustc_abi Rollup merge of #149991 - Flakebi:gpu-kernel-cc, r=workingjubilee 2026-01-02 23:13:21 +01:00
rustc_arena Handle bootstrap cfgs 2025-12-19 15:04:30 -08:00
rustc_ast Fix typo 2025-12-22 16:50:41 +01:00
rustc_ast_ir Implement &pin patterns and ref pin bindings 2025-11-10 09:57:08 +08:00
rustc_ast_lowering Rollup merge of #150073 - daxpedda:internal-unstable-asm-experimental-arch, r=nnethercote 2026-01-01 23:27:54 -05:00
rustc_ast_passes Rollup merge of #149991 - Flakebi:gpu-kernel-cc, r=workingjubilee 2026-01-02 23:13:21 +01:00
rustc_ast_pretty rustdoc: handle macro expansions in types 2025-12-21 23:23:17 +08:00
rustc_attr_parsing Rollup merge of #150193 - Bryntet:parse_instruction_set, r=JonathanBrouwer 2025-12-31 14:30:47 +01:00
rustc_baked_icu_data Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_borrowck Move c-variadic arguments handling into compute_inputs_and_output 2025-12-30 10:16:49 +00:00
rustc_builtin_macros Auto merge of #150133 - ZuseZ4:enzyme-frontend-nightly, r=jieyouxu 2025-12-23 02:49:04 +00:00
rustc_codegen_cranelift Fix some divergences with the cg_clif subtree 2025-12-24 15:16:59 +00:00
rustc_codegen_gcc Fix compilation of cg_gcc with master feature disabled 2025-12-27 18:41:14 +00:00
rustc_codegen_llvm Rollup merge of #150444 - Sa4dUs:offload-intrinsic2, r=ZuseZ4 2026-01-02 19:00:15 +01:00
rustc_codegen_ssa Rollup merge of #150193 - Bryntet:parse_instruction_set, r=JonathanBrouwer 2025-12-31 14:30:47 +01:00
rustc_const_eval Rollup merge of #150405 - estebank:matches-could-be-equals, r=Kivooeo 2025-12-27 13:42:01 +01:00
rustc_data_structures Auto merge of #149273 - bjorn3:crate_locator_improvements, r=petrochenkov 2025-12-14 09:16:11 +00:00
rustc_driver Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_driver_impl Include rustc version in ICE messages 2025-12-24 10:21:07 +00:00
rustc_error_codes Port #[instruction_set] to attribute parser 2025-12-31 03:01:05 +01:00
rustc_error_messages Remove unused pop_span_label method 2025-11-21 14:16:12 +00:00
rustc_errors remove fixme & update stderr files 2025-12-16 13:23:48 +00:00
rustc_expand Auto merge of #149709 - Urgau:overhaul-filenames, r=davidtwco 2025-12-13 14:32:09 +00:00
rustc_feature Rollup merge of #150264 - RalfJung:target-feature-tracking-split, r=Amanieu 2026-01-01 02:47:20 +01:00
rustc_fluent_macro move and rename proc_macro::tracked_{env::var,path::path} 2025-11-26 22:44:25 +01:00
rustc_fs_util Avoid using env::temp when linking a binary 2025-12-24 06:41:42 +00:00
rustc_graphviz change non-canonical clone impl to {*self}, fix some doc comments 2025-12-20 13:46:22 +00:00
rustc_hashes some cleanups in compiler 2025-10-12 08:08:30 +00:00
rustc_hir Rollup merge of #150193 - Bryntet:parse_instruction_set, r=JonathanBrouwer 2025-12-31 14:30:47 +01:00
rustc_hir_analysis Expose workgroup/thread dims as intrinsic args 2026-01-02 11:50:32 +01:00
rustc_hir_id rustc_hir_id: Add a comment explaining why the crate exists 2025-08-20 15:04:00 -07:00
rustc_hir_pretty Rollup merge of #149667 - Shinonn23:fix-ice-constblock-148138, r=dianne 2025-12-28 22:52:31 +01:00
rustc_hir_typeck Rollup merge of #149991 - Flakebi:gpu-kernel-cc, r=workingjubilee 2026-01-02 23:13:21 +01:00
rustc_incremental Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_index layout: Store inverse memory index in FieldsShape::Arbitrary 2025-12-18 22:25:34 +01:00
rustc_index_macros Revert introduction of [workspace.dependencies]. 2025-09-02 19:12:54 +10:00
rustc_infer Remove Option from fold_infer_ty return type. 2025-12-23 07:46:12 +11:00
rustc_interface Remove the need to call clang for std::offload usages 2025-12-23 05:20:07 -08:00
rustc_lexer lexer/parser: ensure deps use the same unicode version 2025-12-27 11:20:42 +01:00
rustc_lint Rollup merge of #149991 - Flakebi:gpu-kernel-cc, r=workingjubilee 2026-01-02 23:13:21 +01:00
rustc_lint_defs Update compiler/rustc_lint_defs/src/builtin.rs 2025-12-19 15:04:30 -08:00
rustc_llvm Rollup merge of #150511 - Sa4dUs:offload-inline, r=ZuseZ4 2025-12-31 14:30:48 +01:00
rustc_log Restrict sysroot crate imports to those defined in this repo. 2025-10-15 13:17:25 +01:00
rustc_macros Rollup merge of #149400 - Skgland:tracked_mod, r=Amanieu 2025-12-09 17:36:48 +01:00
rustc_metadata Rollup merge of #150558 - estebank:multiple-dep-versions, r=jieyouxu 2026-01-03 10:09:29 +01:00
rustc_middle Rollup merge of #150558 - estebank:multiple-dep-versions, r=jieyouxu 2026-01-03 10:09:29 +01:00
rustc_mir_build Split the cases for lowering string-equality and scalar-equality tests 2026-01-02 13:56:46 +11:00
rustc_mir_dataflow Auto merge of #142881 - cjgillot:minimap, r=saethlin 2025-12-27 03:12:17 +00:00
rustc_mir_transform Make inliner cycle detection a fallible process 2025-12-30 22:01:49 -05:00
rustc_monomorphize Don't use matches! when == suffices 2025-12-26 20:28:19 +00:00
rustc_next_trait_solver revert one change from rustc_next_trait_solver 2025-12-12 17:55:26 +00:00
rustc_parse Auto merge of #150519 - camelid:mgca-forbid-params-properly, r=BoxyUwU 2026-01-02 02:23:07 +00:00
rustc_parse_format Allow internal_features lint in doc tests 2025-11-05 11:25:29 +00:00
rustc_passes Rollup merge of #150193 - Bryntet:parse_instruction_set, r=JonathanBrouwer 2025-12-31 14:30:47 +01:00
rustc_pattern_analysis Make ValTree recurse through ty::Const 2025-12-23 13:54:59 +00:00
rustc_privacy Unify the configuration of the compiler docs 2025-11-05 11:25:27 +00:00
rustc_proc_macro Revert introduction of [workspace.dependencies]. 2025-09-02 19:12:54 +10:00
rustc_public Auto merge of #148766 - cjgillot:mir-const-runtime-checks, r=RalfJung,saethlin 2025-12-22 06:58:28 +00:00
rustc_public_bridge Overhaul filename handling for cross-compiler consistency 2025-12-12 07:33:09 +01:00
rustc_query_impl Lock shards while collecting active jobs. 2025-11-14 09:01:22 +08:00
rustc_query_system Also check in case it tries to mark red node as green 2025-12-12 16:44:17 +03:00
rustc_resolve resolve: Keep all encountered bindings in resolve_ident_in_scope_set 2025-12-28 00:01:28 +03:00
rustc_sanitizers Port #[cfi_encoding] to attribute parser 2025-12-21 22:11:33 +01:00
rustc_serialize Allow internal_features lint in doc tests 2025-11-05 11:25:29 +00:00
rustc_session Cleanup debuginfo_compression unstable flag 2026-01-01 19:30:02 -06:00
rustc_span Add diagnostic items for without_provenance and without_provenance_mut 2026-01-02 22:34:17 +00:00
rustc_symbol_mangling refactor destructure_const 2025-12-28 16:12:27 +00:00
rustc_target Rollup merge of #150555 - adamgreig:armv7-thumb-interwork, r=chenyukang 2026-01-01 02:47:21 +01:00
rustc_thread_pool change non-canonical clone impl to {*self}, fix some doc comments 2025-12-20 13:46:22 +00:00
rustc_trait_selection Rollup merge of #150558 - estebank:multiple-dep-versions, r=jieyouxu 2026-01-03 10:09:29 +01:00
rustc_traits add const_of_item query and use it in normalization 2025-11-08 13:50:47 -05:00
rustc_transmute Make ValTree recurse through ty::Const 2025-12-23 13:54:59 +00:00
rustc_ty_utils refactor destructure_const 2025-12-28 16:12:27 +00:00
rustc_type_ir Rollup merge of #150239 - nnethercote:simplify-TypeFreshener-methods, r=lcnr 2025-12-30 10:42:27 +01:00
rustc_type_ir_macros Provide an extended framework for type visit, for use in rust-analyzer 2025-12-16 01:47:28 +02:00
rustc_windows_rc [win] Use find-msvc-tools instead of cc to find the linker and rc on Windows 2025-09-19 12:00:30 -07:00