diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-10-12 15:24:18 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2020-10-12 15:24:18 +0100 |
commit | 93de4918ea06c461b16d844434b8352cbc62704a (patch) | |
tree | 8815e672078f77fb9334c0ecaed33bf25a29f17d /crates/hir_def | |
parent | 518f6d772482c7c58e59081f340947087a9b4800 (diff) | |
parent | 9909ccb4f4a25314f0b831d56c8447345d8fa396 (diff) |
Merge #6199
6199: Fix `mut self` not emitting mutable binding on `self` use r=matklad a=Veykril
Prior to this, when `self` in a function is taken by value and bound mutably, its use inside of the method body won't be marked `mutably`.
Fixes #5461
Co-authored-by: Lukas Wirth <[email protected]>
Diffstat (limited to 'crates/hir_def')
-rw-r--r-- | crates/hir_def/src/body/lower.rs | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/crates/hir_def/src/body/lower.rs b/crates/hir_def/src/body/lower.rs index 2d91bb21f..01e72690a 100644 --- a/crates/hir_def/src/body/lower.rs +++ b/crates/hir_def/src/body/lower.rs | |||
@@ -107,7 +107,10 @@ impl ExprCollector<'_> { | |||
107 | let param_pat = self.alloc_pat( | 107 | let param_pat = self.alloc_pat( |
108 | Pat::Bind { | 108 | Pat::Bind { |
109 | name: name![self], | 109 | name: name![self], |
110 | mode: BindingAnnotation::Unannotated, | 110 | mode: BindingAnnotation::new( |
111 | self_param.mut_token().is_some() && self_param.amp_token().is_none(), | ||
112 | false, | ||
113 | ), | ||
111 | subpat: None, | 114 | subpat: None, |
112 | }, | 115 | }, |
113 | Either::Right(ptr), | 116 | Either::Right(ptr), |