mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-09-26 11:59:49 +00:00
Add a mirror function-like proc-macro expander for tests
This commit is contained in:
parent
8b1e8197fe
commit
ba84b91e78
4 changed files with 45 additions and 10 deletions
|
@ -64,10 +64,11 @@ pre { color: #DCDCCC; background: #3F3F3F; font-size: 22px; padd
|
|||
<span class="keyword">pub</span> <span class="keyword">trait</span> <span class="trait declaration public">Fn</span><span class="angle"><</span><span class="type_param declaration">Args</span><span class="angle">></span><span class="colon">:</span> <span class="trait public">FnMut</span><span class="angle"><</span><span class="type_param">Args</span><span class="angle">></span> <span class="brace">{</span><span class="brace">}</span>
|
||||
<span class="brace">}</span>
|
||||
|
||||
|
||||
<span class="keyword">struct</span> <span class="struct declaration">Foo</span> <span class="brace">{</span>
|
||||
<span class="keyword">pub</span> <span class="field declaration public">x</span><span class="colon">:</span> <span class="builtin_type">i32</span><span class="comma">,</span>
|
||||
<span class="keyword">pub</span> <span class="field declaration public">y</span><span class="colon">:</span> <span class="builtin_type">i32</span><span class="comma">,</span>
|
||||
proc_macros::<span class="macro">mirror!</span> <span class="brace">{</span>
|
||||
<span class="brace">{</span>
|
||||
<span class="comma">,</span><span class="builtin_type">i32</span> <span class="colon">:</span><span class="field declaration public">x</span> <span class="keyword">pub</span>
|
||||
<span class="comma">,</span><span class="builtin_type">i32</span> <span class="colon">:</span><span class="field declaration public">y</span> <span class="keyword">pub</span>
|
||||
<span class="brace">}</span> <span class="struct declaration">Foo</span> <span class="keyword">struct</span>
|
||||
<span class="brace">}</span>
|
||||
|
||||
<span class="keyword">trait</span> <span class="trait declaration">Bar</span> <span class="keyword">where</span> <span class="type_param">Self</span><span class="colon">:</span> <span class="brace">{</span>
|
||||
|
|
|
@ -10,7 +10,7 @@ use crate::{fixture, FileRange, HlTag, TextRange};
|
|||
fn test_highlighting() {
|
||||
check_highlighting(
|
||||
r#"
|
||||
//- proc_macros: identity
|
||||
//- proc_macros: identity, mirror
|
||||
//- /main.rs crate:main deps:foo
|
||||
use inner::{self as inner_mod};
|
||||
mod inner {}
|
||||
|
@ -36,10 +36,11 @@ pub mod ops {
|
|||
pub trait Fn<Args>: FnMut<Args> {}
|
||||
}
|
||||
|
||||
|
||||
struct Foo {
|
||||
pub x: i32,
|
||||
pub y: i32,
|
||||
proc_macros::mirror! {
|
||||
{
|
||||
,i32 :x pub
|
||||
,i32 :y pub
|
||||
} Foo struct
|
||||
}
|
||||
|
||||
trait Bar where Self: {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue