From 2a6aceb0524ef6d9b3e93b8a1e6a9ca11b53663d Mon Sep 17 00:00:00 2001 From: sofia Date: Mon, 28 Jul 2025 01:10:27 +0300 Subject: [PATCH] Apply same self-thing to all dot-syntaxes, actually --- reid/src/mir/typecheck/typeinference.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/reid/src/mir/typecheck/typeinference.rs b/reid/src/mir/typecheck/typeinference.rs index bea048c..93db1f6 100644 --- a/reid/src/mir/typecheck/typeinference.rs +++ b/reid/src/mir/typecheck/typeinference.rs @@ -609,18 +609,18 @@ impl Expression { Void, first_param.1, ) - .unroll_borrows() .resolve_ref(type_refs.types); let backing_var = first_param.backing_var().expect("todo").1.clone(); - *first_param = if backing_var == "self" { - let ExprKind::Borrow(val, _) = &first_param.0 else { - panic!() - }; - *val.clone() - } else { - first_param.clone() - }; + if let TypeKind::Borrow(inner, _) = type_kind { + if let TypeKind::Borrow(..) = *inner.clone() { + *type_kind = type_kind.unroll_borrows(); + let ExprKind::Borrow(val, _) = &first_param.0 else { + panic!() + }; + *first_param = *val.clone(); + } + } if let Some((mutable, _)) = type_refs.find_var(&backing_var) { if !mutable {