diff options
| author | Vincent Esche <regexident@gmail.com> | 2025-09-17 21:19:53 +0200 |
|---|---|---|
| committer | Vincent Esche <regexident@gmail.com> | 2025-09-23 11:39:40 +0200 |
| commit | a025cacc600fe1848db29cdaf199ac2d33f83181 (patch) | |
| tree | 176e5ed939566bb41f4bc0c0c329d3c5edee4b6f | |
| parent | 1393e638bd29f24203c5f153a863a5c18464e304 (diff) | |
Expose iterators over an inference result's types
(This re-introduces a reduced access to a couple of previously public fields on `InferenceResult`)
| -rw-r--r-- | src/tools/rust-analyzer/crates/hir-ty/src/infer.rs | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/tools/rust-analyzer/crates/hir-ty/src/infer.rs b/src/tools/rust-analyzer/crates/hir-ty/src/infer.rs index 3ece62ec35b..b5e9aece364 100644 --- a/src/tools/rust-analyzer/crates/hir-ty/src/infer.rs +++ b/src/tools/rust-analyzer/crates/hir-ty/src/infer.rs @@ -632,6 +632,26 @@ impl InferenceResult { pub fn binding_mode(&self, id: PatId) -> Option<BindingMode> { self.binding_modes.get(id).copied() } + + // This method is consumed by external tools to run rust-analyzer as a library. Don't remove, please. + pub fn expression_types(&self) -> impl Iterator<Item = (ExprId, &Ty)> { + self.type_of_expr.iter() + } + + // This method is consumed by external tools to run rust-analyzer as a library. Don't remove, please. + pub fn pattern_types(&self) -> impl Iterator<Item = (PatId, &Ty)> { + self.type_of_pat.iter() + } + + // This method is consumed by external tools to run rust-analyzer as a library. Don't remove, please. + pub fn binding_types(&self) -> impl Iterator<Item = (BindingId, &Ty)> { + self.type_of_binding.iter() + } + + // This method is consumed by external tools to run rust-analyzer as a library. Don't remove, please. + pub fn return_position_impl_trait_types(&self) -> impl Iterator<Item = (ImplTraitIdx, &Ty)> { + self.type_of_rpit.iter() + } } impl Index<ExprId> for InferenceResult { |
