rust/crates
bors af30656785 Auto merge of #14436 - lowr:patch/normalize-assoc-type-in-path-expr, r=HKalbasi
Normalize associated types in paths in expressions

Part of #14393

When we resolve paths in expressions (either path expressions or paths in struct expressions), there's a need of projection normalization, which `TyLoweringContext` cannot do on its own. We've been properly applying normalization for paths in struct expressions without type anchor, but not for others:

```rust
enum E {
    S { v: i32 }
    Empty,
}

impl Foo for Bar {
    type Assoc = E;
    fn foo() {
        let _ = Self::Assoc::S { v: 42 };   // path in struct expr without type anchor; we already support this
        let _ = <Self>::Assoc::S { v: 42 }; // path in struct expr with type anchor; resolves with this PR
        let _ = Self::Assoc::Empty;         // path expr; resolves with this PR
    }
}
```

With this PR we correctly resolve the whole path, but we need some more tweaks in HIR and/or IDE layers to properly resolve a qualifier (prefix) of such paths and provide IDE features that are pointed out in #14393 to be currently broken.
2023-04-05 10:47:47 +00:00
..
base-db Cleanup crate_graph construction 2023-03-31 14:14:04 +02:00
cfg ⬆️ rust-analyzer 2023-02-13 13:55:14 +02:00
flycheck Bump Cargo.lock 2023-03-25 15:12:39 +01:00
hir Cleanup crate_graph construction 2023-03-31 14:14:04 +02:00
hir-def Auto merge of #14436 - lowr:patch/normalize-assoc-type-in-path-expr, r=HKalbasi 2023-04-05 10:47:47 +00:00
hir-expand Auto merge of #14407 - Veykril:rename-fix, r=Veykril 2023-03-25 18:35:13 +00:00
hir-ty Auto merge of #14436 - lowr:patch/normalize-assoc-type-in-path-expr, r=HKalbasi 2023-04-05 10:47:47 +00:00
ide Don't append "!" to non-bang macro name 2023-04-02 20:13:34 +09:00
ide-assists dedupe by name 2023-04-04 06:57:02 +00:00
ide-completion internal: Set Durability to HIGH for enable_proc_attr_macros input 2023-03-30 15:11:22 +02:00
ide-db internal: Set Durability to HIGH for enable_proc_attr_macros input 2023-03-30 15:11:22 +02:00
ide-diagnostics lower adjusts in simple index except the last one 2023-04-01 16:49:32 +03:30
ide-ssr ⬆️ rust-analyzer 2023-03-13 10:42:24 +02:00
intern ⬆️ rust-analyzer 2023-02-13 13:55:14 +02:00
limit ⬆️ rust-analyzer 2023-02-13 13:55:14 +02:00
mbe ⬆️ rust-analyzer 2023-02-20 10:14:12 +02:00
parser feat(syntax): RTN in bounds 2023-04-01 15:26:03 +02:00
paths Canonicalize rust-project.json manifest path 2023-03-27 21:55:02 +02:00
proc-macro-api Remove client side proc-macro version check 2023-03-25 15:43:58 +01:00
proc-macro-srv ⬆️ rust-analyzer 2023-02-13 13:55:14 +02:00
proc-macro-srv-cli ⬆️ rust-analyzer 2023-02-13 13:55:14 +02:00
proc-macro-test ⬆️ rust-analyzer 2023-02-13 13:55:14 +02:00
profile Bump Cargo.lock 2023-03-25 15:12:39 +01:00
project-model Cleanup crate_graph construction 2023-03-31 14:14:04 +02:00
rust-analyzer internal: Refine CrateOrigin variants 2023-03-31 10:36:13 +02:00
sourcegen ⬆️ rust-analyzer 2023-02-13 13:55:14 +02:00
stdx ⬆️ rust-analyzer 2023-02-20 10:14:12 +02:00
syntax feat(syntax): RTN in bounds 2023-04-01 15:26:03 +02:00
test-utils Support overloaded deref MIR lowering 2023-03-17 14:02:55 +03:30
text-edit internal: Coalesce adjacent Indels 2023-03-21 11:48:32 -04:00
toolchain ⬆️ rust-analyzer 2023-03-13 10:42:24 +02:00
tt ⬆️ rust-analyzer 2023-02-13 13:55:14 +02:00
vfs internal: Refine CrateOrigin variants 2023-03-31 10:36:13 +02:00
vfs-notify ⬆️ rust-analyzer 2023-02-13 13:55:14 +02:00