mirror of
https://github.com/rust-lang/rust-analyzer.git
synced 2025-08-19 01:50:32 +00:00
move test
This commit is contained in:
parent
5b44770102
commit
c986568cbb
2 changed files with 90 additions and 36 deletions
|
@ -1468,3 +1468,93 @@ fn main() {
|
||||||
"#]],
|
"#]],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_winapi_struct() {
|
||||||
|
// from https://github.com/retep998/winapi-rs/blob/a7ef2bca086aae76cf6c4ce4c2552988ed9798ad/src/macros.rs#L366
|
||||||
|
|
||||||
|
check(
|
||||||
|
r#"
|
||||||
|
macro_rules! STRUCT {
|
||||||
|
($(#[$attrs:meta])* struct $name:ident {
|
||||||
|
$($field:ident: $ftype:ty,)+
|
||||||
|
}) => (
|
||||||
|
#[repr(C)] #[derive(Copy)] $(#[$attrs])*
|
||||||
|
pub struct $name {
|
||||||
|
$(pub $field: $ftype,)+
|
||||||
|
}
|
||||||
|
impl Clone for $name {
|
||||||
|
#[inline]
|
||||||
|
fn clone(&self) -> $name { *self }
|
||||||
|
}
|
||||||
|
#[cfg(feature = "impl-default")]
|
||||||
|
impl Default for $name {
|
||||||
|
#[inline]
|
||||||
|
fn default() -> $name { unsafe { $crate::_core::mem::zeroed() } }
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
// from https://github.com/retep998/winapi-rs/blob/a7ef2bca086aae76cf6c4ce4c2552988ed9798ad/src/shared/d3d9caps.rs
|
||||||
|
STRUCT!{struct D3DVSHADERCAPS2_0 {Caps: u8,}}
|
||||||
|
|
||||||
|
STRUCT!{#[cfg_attr(target_arch = "x86", repr(packed))] struct D3DCONTENTPROTECTIONCAPS {Caps : u8 ,}}
|
||||||
|
"#,
|
||||||
|
expect![[r##"
|
||||||
|
macro_rules! STRUCT {
|
||||||
|
($(#[$attrs:meta])* struct $name:ident {
|
||||||
|
$($field:ident: $ftype:ty,)+
|
||||||
|
}) => (
|
||||||
|
#[repr(C)] #[derive(Copy)] $(#[$attrs])*
|
||||||
|
pub struct $name {
|
||||||
|
$(pub $field: $ftype,)+
|
||||||
|
}
|
||||||
|
impl Clone for $name {
|
||||||
|
#[inline]
|
||||||
|
fn clone(&self) -> $name { *self }
|
||||||
|
}
|
||||||
|
#[cfg(feature = "impl-default")]
|
||||||
|
impl Default for $name {
|
||||||
|
#[inline]
|
||||||
|
fn default() -> $name { unsafe { $crate::_core::mem::zeroed() } }
|
||||||
|
}
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[repr(C)]
|
||||||
|
#[derive(Copy)] pub struct D3DVSHADERCAPS2_0 {
|
||||||
|
pub Caps: u8,
|
||||||
|
}
|
||||||
|
impl Clone for D3DVSHADERCAPS2_0 {
|
||||||
|
#[inline] fn clone(&self ) -> D3DVSHADERCAPS2_0 {
|
||||||
|
*self
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#[cfg(feature = "impl-default")] impl Default for D3DVSHADERCAPS2_0 {
|
||||||
|
#[inline] fn default() -> D3DVSHADERCAPS2_0 {
|
||||||
|
unsafe {
|
||||||
|
$crate::_core::mem::zeroed()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#[repr(C)]
|
||||||
|
#[derive(Copy)]
|
||||||
|
#[cfg_attr(target_arch = "x86", repr(packed))] pub struct D3DCONTENTPROTECTIONCAPS {
|
||||||
|
pub Caps: u8,
|
||||||
|
}
|
||||||
|
impl Clone for D3DCONTENTPROTECTIONCAPS {
|
||||||
|
#[inline] fn clone(&self ) -> D3DCONTENTPROTECTIONCAPS {
|
||||||
|
*self
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#[cfg(feature = "impl-default")] impl Default for D3DCONTENTPROTECTIONCAPS {
|
||||||
|
#[inline] fn default() -> D3DCONTENTPROTECTIONCAPS {
|
||||||
|
unsafe {
|
||||||
|
$crate::_core::mem::zeroed()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
"##]],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
|
@ -98,42 +98,6 @@ fn test_attr_to_token_tree() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
|
||||||
fn test_winapi_struct() {
|
|
||||||
// from https://github.com/retep998/winapi-rs/blob/a7ef2bca086aae76cf6c4ce4c2552988ed9798ad/src/macros.rs#L366
|
|
||||||
|
|
||||||
parse_macro(
|
|
||||||
r#"
|
|
||||||
macro_rules! STRUCT {
|
|
||||||
($(#[$attrs:meta])* struct $name:ident {
|
|
||||||
$($field:ident: $ftype:ty,)+
|
|
||||||
}) => (
|
|
||||||
#[repr(C)] #[derive(Copy)] $(#[$attrs])*
|
|
||||||
pub struct $name {
|
|
||||||
$(pub $field: $ftype,)+
|
|
||||||
}
|
|
||||||
impl Clone for $name {
|
|
||||||
#[inline]
|
|
||||||
fn clone(&self) -> $name { *self }
|
|
||||||
}
|
|
||||||
#[cfg(feature = "impl-default")]
|
|
||||||
impl Default for $name {
|
|
||||||
#[inline]
|
|
||||||
fn default() -> $name { unsafe { $crate::_core::mem::zeroed() } }
|
|
||||||
}
|
|
||||||
);
|
|
||||||
}
|
|
||||||
"#,
|
|
||||||
).
|
|
||||||
// from https://github.com/retep998/winapi-rs/blob/a7ef2bca086aae76cf6c4ce4c2552988ed9798ad/src/shared/d3d9caps.rs
|
|
||||||
assert_expand_items(r#"STRUCT!{struct D3DVSHADERCAPS2_0 {Caps: u8,}}"#,
|
|
||||||
"# [repr (C)] # [derive (Copy)] pub struct D3DVSHADERCAPS2_0 {pub Caps : u8 ,} impl Clone for D3DVSHADERCAPS2_0 {# [inline] fn clone (& self) -> D3DVSHADERCAPS2_0 {* self}} # [cfg (feature = \"impl-default\")] impl Default for D3DVSHADERCAPS2_0 {# [inline] fn default () -> D3DVSHADERCAPS2_0 {unsafe {$crate :: _core :: mem :: zeroed ()}}}"
|
|
||||||
)
|
|
||||||
.assert_expand_items(r#"STRUCT!{#[cfg_attr(target_arch = "x86", repr(packed))] struct D3DCONTENTPROTECTIONCAPS {Caps : u8 ,}}"#,
|
|
||||||
"# [repr (C)] # [derive (Copy)] # [cfg_attr (target_arch = \"x86\" , repr (packed))] pub struct D3DCONTENTPROTECTIONCAPS {pub Caps : u8 ,} impl Clone for D3DCONTENTPROTECTIONCAPS {# [inline] fn clone (& self) -> D3DCONTENTPROTECTIONCAPS {* self}} # [cfg (feature = \"impl-default\")] impl Default for D3DCONTENTPROTECTIONCAPS {# [inline] fn default () -> D3DCONTENTPROTECTIONCAPS {unsafe {$crate :: _core :: mem :: zeroed ()}}}"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_int_base() {
|
fn test_int_base() {
|
||||||
parse_macro(
|
parse_macro(
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue