Merge pull request #20891 from daladim/semantic_type_for_logical_not
Semantic type for logical not
This commit is contained in:
commit
88e4ea560a
6 changed files with 9 additions and 4 deletions
|
|
@ -137,7 +137,7 @@ fn punctuation(
|
|||
}
|
||||
(T![!], MACRO_RULES) => HlPunct::MacroBang.into(),
|
||||
(T![!], NEVER_TYPE) => HlTag::BuiltinType.into(),
|
||||
(T![!], PREFIX_EXPR) => HlOperator::Logical.into(),
|
||||
(T![!], PREFIX_EXPR) => HlOperator::Negation.into(),
|
||||
(T![*], PTR_TYPE) => HlTag::Keyword.into(),
|
||||
(T![*], PREFIX_EXPR) => {
|
||||
let h = HlTag::Operator(HlOperator::Other).into();
|
||||
|
|
|
|||
|
|
@ -124,8 +124,10 @@ pub enum HlOperator {
|
|||
Bitwise,
|
||||
/// +, -, *, /, +=, -=, *=, /=
|
||||
Arithmetic,
|
||||
/// &&, ||, !
|
||||
/// &&, ||
|
||||
Logical,
|
||||
/// !
|
||||
Negation,
|
||||
/// >, <, ==, >=, <=, !=
|
||||
Comparison,
|
||||
/// Other operators
|
||||
|
|
@ -194,6 +196,7 @@ impl HlTag {
|
|||
HlOperator::Arithmetic => "arithmetic",
|
||||
HlOperator::Logical => "logical",
|
||||
HlOperator::Comparison => "comparison",
|
||||
HlOperator::Negation => "negation",
|
||||
HlOperator::Other => "operator",
|
||||
},
|
||||
HlTag::StringLiteral => "string_literal",
|
||||
|
|
|
|||
|
|
@ -148,7 +148,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
|
|||
<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>
|
||||
<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>
|
||||
|
||||
<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>
|
||||
<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>
|
||||
|
||||
<span class="label declaration">'foo</span><span class="colon">:</span> <span class="keyword control">loop</span> <span class="brace">{</span>
|
||||
<span class="keyword control">break</span> <span class="label">'foo</span><span class="semicolon">;</span>
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
|
|||
.unresolved_reference { color: #FC5555; text-decoration: wavy underline; }
|
||||
</style>
|
||||
<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>
|
||||
<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">>></span> <span class="numeric_literal">1</span> <span class="bitwise"><<</span> <span class="numeric_literal">1</span><span class="semicolon">;</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="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">>></span> <span class="numeric_literal">1</span> <span class="bitwise"><<</span> <span class="numeric_literal">1</span><span class="semicolon">;</span>
|
||||
<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>
|
||||
<span class="variable mutable">a</span> <span class="arithmetic mutable">+=</span> <span class="numeric_literal">1</span><span class="semicolon">;</span>
|
||||
<span class="variable mutable">a</span> <span class="arithmetic mutable">-=</span> <span class="numeric_literal">1</span><span class="semicolon">;</span>
|
||||
|
|
|
|||
|
|
@ -91,6 +91,7 @@ define_semantic_token_types![
|
|||
(LIFETIME, "lifetime"),
|
||||
(LOGICAL, "logical") => OPERATOR,
|
||||
(MACRO_BANG, "macroBang") => MACRO,
|
||||
(NEGATION, "negation") => OPERATOR,
|
||||
(PARENTHESIS, "parenthesis"),
|
||||
(PROC_MACRO, "procMacro") => MACRO,
|
||||
(PUNCTUATION, "punctuation"),
|
||||
|
|
|
|||
|
|
@ -847,6 +847,7 @@ fn semantic_token_type_and_modifiers(
|
|||
HlOperator::Bitwise => types::BITWISE,
|
||||
HlOperator::Arithmetic => types::ARITHMETIC,
|
||||
HlOperator::Logical => types::LOGICAL,
|
||||
HlOperator::Negation => types::NEGATION,
|
||||
HlOperator::Comparison => types::COMPARISON,
|
||||
HlOperator::Other => types::OPERATOR,
|
||||
},
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue