Skip to content

Commit 88e4ea5

Browse files
Merge pull request rust-lang#20891 from daladim/semantic_type_for_logical_not
Semantic type for logical not
2 parents 3f8c212 + 1ef6888 commit 88e4ea5

File tree

6 files changed

+9
-4
lines changed

6 files changed

+9
-4
lines changed

src/tools/rust-analyzer/crates/ide/src/syntax_highlighting/highlight.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ fn punctuation(
137137
}
138138
(T![!], MACRO_RULES) => HlPunct::MacroBang.into(),
139139
(T![!], NEVER_TYPE) => HlTag::BuiltinType.into(),
140-
(T![!], PREFIX_EXPR) => HlOperator::Logical.into(),
140+
(T![!], PREFIX_EXPR) => HlOperator::Negation.into(),
141141
(T![*], PTR_TYPE) => HlTag::Keyword.into(),
142142
(T![*], PREFIX_EXPR) => {
143143
let h = HlTag::Operator(HlOperator::Other).into();

src/tools/rust-analyzer/crates/ide/src/syntax_highlighting/tags.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,10 @@ pub enum HlOperator {
124124
Bitwise,
125125
/// +, -, *, /, +=, -=, *=, /=
126126
Arithmetic,
127-
/// &&, ||, !
127+
/// &&, ||
128128
Logical,
129+
/// !
130+
Negation,
129131
/// >, <, ==, >=, <=, !=
130132
Comparison,
131133
/// Other operators
@@ -194,6 +196,7 @@ impl HlTag {
194196
HlOperator::Arithmetic => "arithmetic",
195197
HlOperator::Logical => "logical",
196198
HlOperator::Comparison => "comparison",
199+
HlOperator::Negation => "negation",
197200
HlOperator::Other => "operator",
198201
},
199202
HlTag::StringLiteral => "string_literal",

src/tools/rust-analyzer/crates/ide/src/syntax_highlighting/test_data/highlight_general.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@
148148
<span class="keyword">let</span> <span class="variable declaration">baz</span> <span class="operator">=</span> <span class="parenthesis">(</span><span class="numeric_literal">-</span><span class="numeric_literal">42</span><span class="comma">,</span><span class="parenthesis">)</span><span class="semicolon">;</span>
149149
<span class="keyword">let</span> <span class="variable declaration">baz</span> <span class="operator">=</span> <span class="operator">-</span><span class="variable">baz</span><span class="operator">.</span><span class="field library">0</span><span class="semicolon">;</span>
150150

151-
<span class="keyword">let</span> <span class="punctuation">_</span> <span class="operator">=</span> <span class="logical">!</span><span class="bool_literal">true</span><span class="semicolon">;</span>
151+
<span class="keyword">let</span> <span class="punctuation">_</span> <span class="operator">=</span> <span class="negation">!</span><span class="bool_literal">true</span><span class="semicolon">;</span>
152152

153153
<span class="label declaration">'foo</span><span class="colon">:</span> <span class="keyword control">loop</span> <span class="brace">{</span>
154154
<span class="keyword control">break</span> <span class="label">'foo</span><span class="semicolon">;</span>

src/tools/rust-analyzer/crates/ide/src/syntax_highlighting/test_data/highlight_operators.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
.unresolved_reference { color: #FC5555; text-decoration: wavy underline; }
4242
</style>
4343
<pre><code><span class="keyword">fn</span> <span class="function declaration">main</span><span class="parenthesis">(</span><span class="parenthesis">)</span> <span class="brace">{</span>
44-
<span class="numeric_literal">1</span> <span class="arithmetic">+</span> <span class="numeric_literal">1</span> <span class="arithmetic">-</span> <span class="numeric_literal">1</span> <span class="arithmetic">*</span> <span class="numeric_literal">1</span> <span class="arithmetic">/</span> <span class="numeric_literal">1</span> <span class="arithmetic">%</span> <span class="numeric_literal">1</span> <span class="bitwise">|</span> <span class="numeric_literal">1</span> <span class="bitwise">&</span> <span class="numeric_literal">1</span> <span class="logical">!</span> <span class="numeric_literal">1</span> <span class="bitwise">^</span> <span class="numeric_literal">1</span> <span class="bitwise">&gt;&gt;</span> <span class="numeric_literal">1</span> <span class="bitwise">&lt;&lt;</span> <span class="numeric_literal">1</span><span class="semicolon">;</span>
44+
<span class="numeric_literal">1</span> <span class="arithmetic">+</span> <span class="numeric_literal">1</span> <span class="arithmetic">-</span> <span class="numeric_literal">1</span> <span class="arithmetic">*</span> <span class="numeric_literal">1</span> <span class="arithmetic">/</span> <span class="numeric_literal">1</span> <span class="arithmetic">%</span> <span class="numeric_literal">1</span> <span class="bitwise">|</span> <span class="numeric_literal">1</span> <span class="bitwise">&</span> <span class="numeric_literal">1</span> <span class="negation">!</span> <span class="numeric_literal">1</span> <span class="bitwise">^</span> <span class="numeric_literal">1</span> <span class="bitwise">&gt;&gt;</span> <span class="numeric_literal">1</span> <span class="bitwise">&lt;&lt;</span> <span class="numeric_literal">1</span><span class="semicolon">;</span>
4545
<span class="keyword">let</span> <span class="keyword">mut</span> <span class="variable declaration mutable">a</span> <span class="operator">=</span> <span class="numeric_literal">0</span><span class="semicolon">;</span>
4646
<span class="variable mutable">a</span> <span class="arithmetic mutable">+=</span> <span class="numeric_literal">1</span><span class="semicolon">;</span>
4747
<span class="variable mutable">a</span> <span class="arithmetic mutable">-=</span> <span class="numeric_literal">1</span><span class="semicolon">;</span>

src/tools/rust-analyzer/crates/rust-analyzer/src/lsp/semantic_tokens.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -91,6 +91,7 @@ define_semantic_token_types![
9191
(LIFETIME, "lifetime"),
9292
(LOGICAL, "logical") => OPERATOR,
9393
(MACRO_BANG, "macroBang") => MACRO,
94+
(NEGATION, "negation") => OPERATOR,
9495
(PARENTHESIS, "parenthesis"),
9596
(PROC_MACRO, "procMacro") => MACRO,
9697
(PUNCTUATION, "punctuation"),

src/tools/rust-analyzer/crates/rust-analyzer/src/lsp/to_proto.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -847,6 +847,7 @@ fn semantic_token_type_and_modifiers(
847847
HlOperator::Bitwise => types::BITWISE,
848848
HlOperator::Arithmetic => types::ARITHMETIC,
849849
HlOperator::Logical => types::LOGICAL,
850+
HlOperator::Negation => types::NEGATION,
850851
HlOperator::Comparison => types::COMPARISON,
851852
HlOperator::Other => types::OPERATOR,
852853
},

0 commit comments

Comments
 (0)