Skip to content

Commit 53c7aea

Browse files
bors[bot]Veykril
andauthored
Merge #6379
6379: Highlight never type as BuiltinType r=matklad a=Veykril Fixes #6374 Co-authored-by: Lukas Wirth <[email protected]>
2 parents 3f20d34 + 269e673 commit 53c7aea

File tree

3 files changed

+15
-0
lines changed

3 files changed

+15
-0
lines changed

crates/ide/src/syntax_highlighting.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -562,6 +562,9 @@ fn highlight_element(
562562
T![!] if element.parent().and_then(ast::MacroCall::cast).is_some() => {
563563
HighlightTag::Macro.into()
564564
}
565+
T![!] if element.parent().and_then(ast::NeverType::cast).is_some() => {
566+
HighlightTag::BuiltinType.into()
567+
}
565568
T![*] if element.parent().and_then(ast::PtrType::cast).is_some() => {
566569
HighlightTag::Keyword.into()
567570
}

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

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,10 @@
110110
<span class="function">foo</span><span class="operator">::</span><span class="punctuation">&lt;</span><span class="lifetime">'a</span><span class="punctuation">,</span> <span class="builtin_type">i32</span><span class="punctuation">&gt;</span><span class="punctuation">(</span><span class="punctuation">)</span>
111111
<span class="punctuation">}</span>
112112

113+
<span class="keyword">fn</span> <span class="function declaration">never</span><span class="punctuation">(</span><span class="punctuation">)</span> <span class="operator">-&gt;</span> <span class="builtin_type">!</span> <span class="punctuation">{</span>
114+
<span class="keyword control">loop</span> <span class="punctuation">{</span><span class="punctuation">}</span>
115+
<span class="punctuation">}</span>
116+
113117
<span class="keyword">use</span> <span class="module">ops</span><span class="operator">::</span><span class="trait">Fn</span><span class="punctuation">;</span>
114118
<span class="keyword">fn</span> <span class="function declaration">baz</span><span class="punctuation">&lt;</span><span class="type_param declaration">F</span><span class="punctuation">:</span> <span class="trait">Fn</span><span class="punctuation">(</span><span class="punctuation">)</span> <span class="operator">-&gt;</span> <span class="punctuation">(</span><span class="punctuation">)</span><span class="punctuation">&gt;</span><span class="punctuation">(</span><span class="value_param declaration callable">f</span><span class="punctuation">:</span> <span class="type_param">F</span><span class="punctuation">)</span> <span class="punctuation">{</span>
115119
<span class="value_param callable">f</span><span class="punctuation">(</span><span class="punctuation">)</span>
@@ -185,6 +189,8 @@
185189

186190
<span class="keyword">let</span> <span class="variable declaration">baz</span> <span class="operator">=</span> <span class="numeric_literal">-</span><span class="numeric_literal">42</span><span class="punctuation">;</span>
187191
<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="punctuation">;</span>
192+
193+
<span class="keyword">let</span> <span class="punctuation">_</span> <span class="operator">=</span> <span class="operator">!</span><span class="bool_literal">true</span><span class="punctuation">;</span>
188194
<span class="punctuation">}</span>
189195

190196
<span class="keyword">enum</span> <span class="enum declaration">Option</span><span class="punctuation">&lt;</span><span class="type_param declaration">T</span><span class="punctuation">&gt;</span> <span class="punctuation">{</span>

crates/ide/src/syntax_highlighting/tests.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ fn foo<'a, T>() -> T {
8484
foo::<'a, i32>()
8585
}
8686
87+
fn never() -> ! {
88+
loop {}
89+
}
90+
8791
use ops::Fn;
8892
fn baz<F: Fn() -> ()>(f: F) {
8993
f()
@@ -159,6 +163,8 @@ fn main() {
159163
160164
let baz = -42;
161165
let baz = -baz;
166+
167+
let _ = !true;
162168
}
163169
164170
enum Option<T> {

0 commit comments

Comments
 (0)