rust/crates/hir/src
bors 2223b4fa71 Auto merge of #13112 - lowr:patch/auto-trait-bounds, r=Veykril
Setup infra for handling auto trait bounds disabled due to perf problems

This patch updates some of the partially-implemented functions of `ChalkContext as RustIrDatabase`, namely `adt_datum()` and `impl_provided_for()`. With those, we can now correctly work with auto trait bounds and distinguish methods based on them.

Resolves #7856 (the second code; the first one is resolved by #13074)

**IMPORTANT**: I don't think we want to merge this until #7637 is resolved. Currently this patch introduces A LOT of unknown types and type mismtaches as shown below. This is because we cannot resolve items like `hashbrown::HashMap` in `std` modules, leading to auto trait bounds on them and their dependents unprovable.

|crate (from `rustc-perf@c52ee6` except for r-a)|e3dc5a588f07d6f1d3a0f33051d4af26190abe9e|HEAD of this branch|
|---|---|---|
|rust-analyzer @ e3dc5a588f |exprs: 417528, ??ty: 907 (0%), ?ty: 114 (0%), !ty: 1|exprs: 417528, ??ty: 1704 (0%), ?ty: 403 (0%), !ty: 20|
|ripgrep|exprs: 62120, ??ty: 2 (0%), ?ty: 0 (0%), !ty: 0|exprs: 62120, ??ty: 132 (0%), ?ty: 58 (0%), !ty: 11|
|webrender/webrender|exprs: 94355, ??ty: 49 (0%), ?ty: 16 (0%), !ty: 2|exprs: 94355, ??ty: 429 (0%), ?ty: 130 (0%), !ty: 7|
|diesel|exprs: 132591, ??ty: 401 (0%), ?ty: 5129 (3%), !ty: 31|exprs: 132591, ??ty: 401 (0%), ?ty: 5129 (3%), !ty: 31|
2024-02-19 16:45:59 +00:00
..
semantics internal: switch to tracing from log 2024-01-30 12:27:31 -05:00
term_search minor: fix typo 2024-02-19 18:12:08 +08:00
attrs.rs clippy: Enable self_named_constructors rule 2024-02-09 22:31:21 +09:00
db.rs internal: Make data queries transparent over their diagnostics variant 2024-01-16 10:47:54 +01:00
diagnostics.rs feat: add unresolved-ident diagnostic 2024-02-19 14:12:18 +01:00
display.rs fix: Fix tuple structs not rendering visibility in their fields 2024-02-08 10:05:28 +01:00
from_id.rs Eagerly lower enum variants in CrateDefMap construction 2024-01-15 10:24:14 +01:00
has_source.rs Eagerly lower enum variants in CrateDefMap construction 2024-01-15 10:24:14 +01:00
lib.rs Rename StructDatum -> AdtDatum 2024-02-14 13:50:44 +01:00
semantics.rs internal: Remove unnecessary usages of ExpansionInfo 2024-01-31 09:57:17 +01:00
source_analyzer.rs redundant_pattern_matching 2024-01-19 17:31:01 +01:00
symbols.rs Eagerly lower enum variants in CrateDefMap construction 2024-01-15 10:24:14 +01:00
term_search.rs Cleanup term search related changes 2024-02-11 14:35:54 +02:00