Skip to content

Commit 3209dda

Browse files
bors[bot]1c3t3a
andauthored
Merge #8660
8660: Added `mutable` semantic token modifier for `&mut self` methods r=Veykril a=1c3t3a This closes #8644. Co-authored-by: Bastian Kersting <[email protected]>
2 parents 6175353 + 421cf9a commit 3209dda

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

crates/ide/src/syntax_highlighting/highlight.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -286,8 +286,13 @@ fn highlight_def(db: &RootDatabase, def: Definition) -> Highlight {
286286
let mut h = Highlight::new(HlTag::Symbol(SymbolKind::Function));
287287
if let Some(item) = func.as_assoc_item(db) {
288288
h |= HlMod::Associated;
289-
if func.self_param(db).is_none() {
290-
h |= HlMod::Static
289+
match func.self_param(db) {
290+
Some(sp) => {
291+
if let hir::Access::Exclusive = sp.access(db) {
292+
h |= HlMod::Mutable;
293+
}
294+
}
295+
None => h |= HlMod::Static,
291296
}
292297

293298
match item.container(db) {

crates/ide/src/syntax_highlighting/test_data/highlighting.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@
8181
<span class="value_param">f</span><span class="operator">.</span><span class="function associated consuming">baz</span><span class="parenthesis">(</span><span class="self_keyword consuming mutable">self</span><span class="parenthesis">)</span>
8282
<span class="brace">}</span>
8383

84-
<span class="keyword">fn</span> <span class="function associated declaration">qux</span><span class="parenthesis">(</span><span class="operator">&</span><span class="keyword">mut</span> <span class="self_keyword declaration mutable">self</span><span class="parenthesis">)</span> <span class="brace">{</span>
84+
<span class="keyword">fn</span> <span class="function associated declaration mutable">qux</span><span class="parenthesis">(</span><span class="operator">&</span><span class="keyword">mut</span> <span class="self_keyword declaration mutable">self</span><span class="parenthesis">)</span> <span class="brace">{</span>
8585
<span class="self_keyword mutable">self</span><span class="operator">.</span><span class="field">x</span> <span class="operator">=</span> <span class="numeric_literal">0</span><span class="semicolon">;</span>
8686
<span class="brace">}</span>
8787

@@ -100,7 +100,7 @@
100100
<span class="value_param">f</span><span class="operator">.</span><span class="function associated">baz</span><span class="parenthesis">(</span><span class="self_keyword">self</span><span class="parenthesis">)</span>
101101
<span class="brace">}</span>
102102

103-
<span class="keyword">fn</span> <span class="function associated declaration">qux</span><span class="parenthesis">(</span><span class="operator">&</span><span class="keyword">mut</span> <span class="self_keyword declaration mutable">self</span><span class="parenthesis">)</span> <span class="brace">{</span>
103+
<span class="keyword">fn</span> <span class="function associated declaration mutable">qux</span><span class="parenthesis">(</span><span class="operator">&</span><span class="keyword">mut</span> <span class="self_keyword declaration mutable">self</span><span class="parenthesis">)</span> <span class="brace">{</span>
104104
<span class="self_keyword mutable">self</span><span class="operator">.</span><span class="field">x</span> <span class="operator">=</span> <span class="numeric_literal">0</span><span class="semicolon">;</span>
105105
<span class="brace">}</span>
106106

0 commit comments

Comments
 (0)