Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'crates/hir-ty/src/infer/mutability.rs')
-rw-r--r--crates/hir-ty/src/infer/mutability.rs12
1 files changed, 11 insertions, 1 deletions
diff --git a/crates/hir-ty/src/infer/mutability.rs b/crates/hir-ty/src/infer/mutability.rs
index b8a1af96fb..763f4ed2f9 100644
--- a/crates/hir-ty/src/infer/mutability.rs
+++ b/crates/hir-ty/src/infer/mutability.rs
@@ -3,7 +3,10 @@
use chalk_ir::Mutability;
use hir_def::{
- hir::{Array, BinaryOp, BindingAnnotation, Expr, ExprId, PatId, Statement, UnaryOp},
+ hir::{
+ format_args::FormatArgumentKind, Array, BinaryOp, BindingAnnotation, Expr, ExprId, PatId,
+ Statement, UnaryOp,
+ },
lang_item::LangItem,
};
use hir_expand::name;
@@ -37,6 +40,13 @@ impl InferenceContext<'_> {
Expr::Missing => (),
Expr::InlineAsm(e) => self.infer_mut_expr_without_adjust(e.e, Mutability::Not),
Expr::OffsetOf(_) => (),
+ Expr::FormatArgs(fa) => {
+ fa.arguments
+ .arguments
+ .iter()
+ .filter(|it| !matches!(it.kind, FormatArgumentKind::Captured(_)))
+ .for_each(|arg| self.infer_mut_expr_without_adjust(arg.expr, Mutability::Not));
+ }
&Expr::If { condition, then_branch, else_branch } => {
self.infer_mut_expr(condition, Mutability::Not);
self.infer_mut_expr(then_branch, Mutability::Not);