diff --git a/crates/ide/src/syntax_highlighting/highlight.rs b/crates/ide/src/syntax_highlighting/highlight.rs
index 8731699dc9..b586dcc179 100644
--- a/crates/ide/src/syntax_highlighting/highlight.rs
+++ b/crates/ide/src/syntax_highlighting/highlight.rs
@@ -286,8 +286,13 @@ fn highlight_def(db: &RootDatabase, def: Definition) -> Highlight {
let mut h = Highlight::new(HlTag::Symbol(SymbolKind::Function));
if let Some(item) = func.as_assoc_item(db) {
h |= HlMod::Associated;
- if func.self_param(db).is_none() {
- h |= HlMod::Static
+ match func.self_param(db) {
+ Some(sp) => {
+ if let hir::Access::Exclusive = sp.access(db) {
+ h |= HlMod::Mutable;
+ }
+ }
+ None => h |= HlMod::Static,
}
match item.container(db) {
diff --git a/crates/ide/src/syntax_highlighting/test_data/highlighting.html b/crates/ide/src/syntax_highlighting/test_data/highlighting.html
index 4319e8b50f..df41921949 100644
--- a/crates/ide/src/syntax_highlighting/test_data/highlighting.html
+++ b/crates/ide/src/syntax_highlighting/test_data/highlighting.html
@@ -81,7 +81,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
f.baz(self)
}
- fn qux(&mut self) {
+ fn qux(&mut self) {
self.x = 0;
}
@@ -100,7 +100,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
f.baz(self)
}
- fn qux(&mut self) {
+ fn qux(&mut self) {
self.x = 0;
}