mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-10-03 15:15:24 +00:00
Add testing of foreign item highlighting
This commit is contained in:
parent
b4cddc0705
commit
fa0d0bfb7f
2 changed files with 55 additions and 1 deletions
|
@ -248,4 +248,20 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
|
||||||
<span class="brace">}</span>
|
<span class="brace">}</span>
|
||||||
|
|
||||||
<span class="keyword unsafe">unsafe</span> <span class="keyword">trait</span> <span class="trait declaration unsafe">Dangerous</span> <span class="brace">{</span><span class="brace">}</span>
|
<span class="keyword unsafe">unsafe</span> <span class="keyword">trait</span> <span class="trait declaration unsafe">Dangerous</span> <span class="brace">{</span><span class="brace">}</span>
|
||||||
<span class="keyword">impl</span> <span class="trait unsafe">Dangerous</span> <span class="keyword">for</span> <span class="parenthesis">(</span><span class="parenthesis">)</span> <span class="brace">{</span><span class="brace">}</span></code></pre>
|
<span class="keyword">impl</span> <span class="trait unsafe">Dangerous</span> <span class="keyword">for</span> <span class="parenthesis">(</span><span class="parenthesis">)</span> <span class="brace">{</span><span class="brace">}</span>
|
||||||
|
|
||||||
|
<span class="keyword">fn</span> <span class="function declaration">use_foo_items</span><span class="parenthesis">(</span><span class="parenthesis">)</span> <span class="brace">{</span>
|
||||||
|
<span class="keyword">let</span> <span class="variable declaration">bob</span> <span class="operator">=</span> <span class="module foreign">foo</span><span class="operator">::</span><span class="struct foreign">Person</span> <span class="brace">{</span>
|
||||||
|
<span class="field foreign">name</span><span class="colon">:</span> <span class="string_literal">"Bob"</span><span class="comma">,</span>
|
||||||
|
<span class="field foreign">age</span><span class="colon">:</span> <span class="module foreign">foo</span><span class="operator">::</span><span class="module foreign">consts</span><span class="operator">::</span><span class="constant foreign">NUMBER</span><span class="comma">,</span>
|
||||||
|
<span class="brace">}</span><span class="semicolon">;</span>
|
||||||
|
|
||||||
|
<span class="keyword">let</span> <span class="variable declaration">control_flow</span> <span class="operator">=</span> <span class="module foreign">foo</span><span class="operator">::</span><span class="function foreign">identity</span><span class="parenthesis">(</span><span class="module foreign">foo</span><span class="operator">::</span><span class="enum foreign">ControlFlow</span><span class="operator">::</span><span class="enum_variant foreign">Continue</span><span class="parenthesis">)</span><span class="semicolon">;</span>
|
||||||
|
|
||||||
|
<span class="keyword control">if</span> <span class="keyword">let</span> <span class="module foreign">foo</span><span class="operator">::</span><span class="enum foreign">ControlFlow</span><span class="operator">::</span><span class="enum_variant foreign">Die</span> <span class="operator">=</span> <span class="variable">control_flow</span> <span class="brace">{</span>
|
||||||
|
foo::<span class="macro">die!</span><span class="parenthesis">(</span><span class="parenthesis">)</span><span class="semicolon">;</span>
|
||||||
|
<span class="brace">}</span>
|
||||||
|
<span class="brace">}</span>
|
||||||
|
|
||||||
|
|
||||||
|
</code></pre>
|
|
@ -10,6 +10,7 @@ use crate::{fixture, FileRange, HlTag, TextRange};
|
||||||
fn test_highlighting() {
|
fn test_highlighting() {
|
||||||
check_highlighting(
|
check_highlighting(
|
||||||
r#"
|
r#"
|
||||||
|
//- /main.rs crate:main deps:foo
|
||||||
use inner::{self as inner_mod};
|
use inner::{self as inner_mod};
|
||||||
mod inner {}
|
mod inner {}
|
||||||
|
|
||||||
|
@ -222,6 +223,43 @@ async fn async_main() {
|
||||||
|
|
||||||
unsafe trait Dangerous {}
|
unsafe trait Dangerous {}
|
||||||
impl Dangerous for () {}
|
impl Dangerous for () {}
|
||||||
|
|
||||||
|
fn use_foo_items() {
|
||||||
|
let bob = foo::Person {
|
||||||
|
name: "Bob",
|
||||||
|
age: foo::consts::NUMBER,
|
||||||
|
};
|
||||||
|
|
||||||
|
let control_flow = foo::identity(foo::ControlFlow::Continue);
|
||||||
|
|
||||||
|
if let foo::ControlFlow::Die = control_flow {
|
||||||
|
foo::die!();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//- /foo.rs crate:foo
|
||||||
|
pub struct Person {
|
||||||
|
pub name: &'static str,
|
||||||
|
pub age: u8,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub enum ControlFlow {
|
||||||
|
Continue,
|
||||||
|
Die,
|
||||||
|
}
|
||||||
|
|
||||||
|
pub fn identity<T>(x: T) -> T { x }
|
||||||
|
|
||||||
|
pub mod consts {
|
||||||
|
pub const NUMBER: i64 = 92;
|
||||||
|
}
|
||||||
|
|
||||||
|
macro_rules! die {
|
||||||
|
() => {
|
||||||
|
panic!();
|
||||||
|
};
|
||||||
|
}
|
||||||
"#
|
"#
|
||||||
.trim(),
|
.trim(),
|
||||||
expect_file!["./test_data/highlighting.html"],
|
expect_file!["./test_data/highlighting.html"],
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue