From 065d3987012b138b123f0544de193f8bb560b1b5 Mon Sep 17 00:00:00 2001 From: Florian Diebold Date: Sat, 6 Jul 2019 16:41:04 +0200 Subject: Add trait obligations for where clauses when calling functions/methods E.g. if we call `foo>(x)`, that adds an obligation that `x: Into`, etc. --- crates/ra_hir/src/resolve.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'crates/ra_hir/src/resolve.rs') diff --git a/crates/ra_hir/src/resolve.rs b/crates/ra_hir/src/resolve.rs index c8be27e54..e2a7639b0 100644 --- a/crates/ra_hir/src/resolve.rs +++ b/crates/ra_hir/src/resolve.rs @@ -221,6 +221,18 @@ impl Resolver { pub(crate) fn krate(&self) -> Option { self.module().map(|t| t.0.krate()) } + + pub(crate) fn where_predicates_in_scope<'a>( + &'a self, + ) -> impl Iterator + 'a { + self.scopes + .iter() + .filter_map(|scope| match scope { + Scope::GenericParams(params) => Some(params), + _ => None, + }) + .flat_map(|params| params.where_predicates.iter()) + } } impl Resolver { -- cgit v1.2.3