1
Fork 0

Rename confusing function name

This commit is contained in:
Michael Goulet 2024-04-11 13:14:08 -04:00
parent d2dabeee76
commit b826eb219c
4 changed files with 9 additions and 9 deletions

View file

@ -992,7 +992,7 @@ impl<'a, 'tcx> MirBorrowckCtxt<'a, 'tcx> {
} }
} }
if look_at_return && hir.get_return_block(closure_id).is_some() { if look_at_return && hir.get_fn_id_for_return_block(closure_id).is_some() {
// ...otherwise we are probably in the tail expression of the function, point at the // ...otherwise we are probably in the tail expression of the function, point at the
// return type. // return type.
match self.infcx.tcx.hir_node_by_def_id(hir.get_parent_item(fn_call_id).def_id) { match self.infcx.tcx.hir_node_by_def_id(hir.get_parent_item(fn_call_id).def_id) {

View file

@ -944,7 +944,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
) -> Option<(LocalDefId, &'tcx hir::FnDecl<'tcx>, bool)> { ) -> Option<(LocalDefId, &'tcx hir::FnDecl<'tcx>, bool)> {
// Get enclosing Fn, if it is a function or a trait method, unless there's a `loop` or // Get enclosing Fn, if it is a function or a trait method, unless there's a `loop` or
// `while` before reaching it, as block tail returns are not available in them. // `while` before reaching it, as block tail returns are not available in them.
self.tcx.hir().get_return_block(blk_id).and_then(|blk_id| { self.tcx.hir().get_fn_id_for_return_block(blk_id).and_then(|blk_id| {
let parent = self.tcx.hir_node(blk_id); let parent = self.tcx.hir_node(blk_id);
self.get_node_fn_decl(parent) self.get_node_fn_decl(parent)
.map(|(fn_id, fn_decl, _, is_main)| (fn_id, fn_decl, is_main)) .map(|(fn_id, fn_decl, _, is_main)| (fn_id, fn_decl, is_main))

View file

@ -1909,7 +1909,7 @@ impl<'a, 'tcx> FnCtxt<'a, 'tcx> {
let returned = matches!( let returned = matches!(
self.tcx.parent_hir_node(expr.hir_id), self.tcx.parent_hir_node(expr.hir_id),
hir::Node::Expr(hir::Expr { kind: hir::ExprKind::Ret(_), .. }) hir::Node::Expr(hir::Expr { kind: hir::ExprKind::Ret(_), .. })
) || map.get_return_block(expr.hir_id).is_some(); ) || map.get_fn_id_for_return_block(expr.hir_id).is_some();
if returned if returned
&& let ty::Adt(e, args_e) = expected.kind() && let ty::Adt(e, args_e) = expected.kind()
&& let ty::Adt(f, args_f) = found.kind() && let ty::Adt(f, args_f) = found.kind()

View file

@ -511,14 +511,14 @@ impl<'hir> Map<'hir> {
self.body_const_context(self.enclosing_body_owner(hir_id)).is_some() self.body_const_context(self.enclosing_body_owner(hir_id)).is_some()
} }
/// Retrieves the `HirId` for `id`'s enclosing method's body, unless there's a /// Retrieves the `HirId` for `id`'s enclosing function *if* the `id` block or return is
/// `while` or `loop` before reaching it, as block tail returns are not /// in the "tail" position of the function, in other words if it's likely to correspond
/// available in them. /// to the return type of the function.
/// ///
/// ``` /// ```
/// fn foo(x: usize) -> bool { /// fn foo(x: usize) -> bool {
/// if x == 1 { /// if x == 1 {
/// true // If `get_return_block` gets passed the `id` corresponding /// true // If `get_fn_id_for_return_block` gets passed the `id` corresponding
/// } else { // to this, it will return `foo`'s `HirId`. /// } else { // to this, it will return `foo`'s `HirId`.
/// false /// false
/// } /// }
@ -528,12 +528,12 @@ impl<'hir> Map<'hir> {
/// ```compile_fail,E0308 /// ```compile_fail,E0308
/// fn foo(x: usize) -> bool { /// fn foo(x: usize) -> bool {
/// loop { /// loop {
/// true // If `get_return_block` gets passed the `id` corresponding /// true // If `get_fn_id_for_return_block` gets passed the `id` corresponding
/// } // to this, it will return `None`. /// } // to this, it will return `None`.
/// false /// false
/// } /// }
/// ``` /// ```
pub fn get_return_block(self, id: HirId) -> Option<HirId> { pub fn get_fn_id_for_return_block(self, id: HirId) -> Option<HirId> {
let mut iter = self.parent_iter(id).peekable(); let mut iter = self.parent_iter(id).peekable();
let mut ignore_tail = false; let mut ignore_tail = false;
if let Node::Expr(Expr { kind: ExprKind::Ret(_), .. }) = self.tcx.hir_node(id) { if let Node::Expr(Expr { kind: ExprKind::Ret(_), .. }) = self.tcx.hir_node(id) {