164 sema: &Semantics<'_, RootDatabase>,
165 node: &SyntaxNode,
166▶) -> Option<hir::Function> {
167 let node = ast::TryExpr::cast(node.clone())?;
168 let try_expr_ty = sema.type_of_expr(&node.expr()?)?.adjusted();
· · ·
190
191 let from_trait = fd.core_convert_From()?;
192▶ let from_fn = from_trait.function(sema.db, sym::from)?;
193 sema.resolve_trait_impl_method(
194 returned_err_ty.clone(),
· · ·
206 let method_call = ast::MethodCallExpr::cast(original_token.parent()?.parent()?)?;
207 let callable = sema.resolve_method_call_as_callable(&method_call)?;
208▶ let CallableKind::Function(f) = callable.kind() else { return None };
209 let assoc = f.as_assoc_item(sema.db)?;
210
· · ·
218 {
219 let t = fd.core_convert_FromStr()?;
220▶ let t_f = t.function(sema.db, &sym::from_str)?;
221 return sema
222 .resolve_trait_impl_method(
· · ·
234 let f = if fn_name == sym::into && fd.core_convert_Into() == Some(t) {
235 let dual = fd.core_convert_From()?;
236▶ let dual_f = dual.function(sema.db, &sym::from)?;
237 sema.resolve_trait_impl_method(
238 return_type.clone(),
+ 81 more matches in this file