Enable qualifier completions for derives

This commit is contained in:
Lukas Wirth 2022-03-10 21:56:19 +01:00
parent 2abe19e46a
commit b1ab5770c9
2 changed files with 123 additions and 83 deletions

View file

@ -688,13 +688,17 @@ mod derive {
#[derive($0)] struct Test;
"#,
expect![[r#"
de Default
md core
de Default pub macro Default
de Clone, Copy
de PartialEq
de PartialEq pub macro PartialEq
de PartialEq, Eq
de PartialEq, Eq, PartialOrd, Ord
de Clone
de Clone pub macro Clone
de PartialEq, PartialOrd
kw self::
kw super::
kw crate::
"#]],
);
}
@ -707,12 +711,16 @@ mod derive {
#[derive(serde::Serialize, PartialEq, $0)] struct Test;
"#,
expect![[r#"
de Default
md core
de Default pub macro Default
de Clone, Copy
de Eq
de Eq, PartialOrd, Ord
de Clone
de Clone pub macro Clone
de PartialOrd
kw self::
kw super::
kw crate::
"#]],
)
}
@ -725,36 +733,20 @@ mod derive {
#[derive($0 serde::Serialize, PartialEq)] struct Test;
"#,
expect![[r#"
de Default
md core
de Default pub macro Default
de Clone, Copy
de Eq
de Eq, PartialOrd, Ord
de Clone
de Clone pub macro Clone
de PartialOrd
kw self::
kw super::
kw crate::
"#]],
)
}
#[test]
fn derive_no_attrs() {
check_derive(
r#"
//- proc_macros: identity
//- minicore: derive
#[derive($0)] struct Test;
"#,
expect![[r#""#]],
);
check_derive(
r#"
//- proc_macros: identity
//- minicore: derive
#[derive(i$0)] struct Test;
"#,
expect![[r#""#]],
);
}
#[test]
fn derive_flyimport() {
check_derive(
@ -764,6 +756,11 @@ mod derive {
#[derive(der$0)] struct Test;
"#,
expect![[r#"
md proc_macros
md core
kw self::
kw super::
kw crate::
de DeriveIdentity (use proc_macros::DeriveIdentity) pub macro derive_identity
"#]],
);
@ -775,7 +772,12 @@ use proc_macros::DeriveIdentity;
#[derive(der$0)] struct Test;
"#,
expect![[r#"
de DeriveIdentity
de DeriveIdentity pub macro derive_identity
md proc_macros
md core
kw self::
kw super::
kw crate::
"#]],
);
}
@ -805,7 +807,9 @@ use proc_macros::DeriveIdentity;
//- minicore: derive, copy, clone
#[derive(proc_macros::$0)] struct Test;
"#,
expect![[r#""#]],
expect![[r#"
de DeriveIdentity pub macro derive_identity
"#]],
);
check_derive(
r#"
@ -813,7 +817,9 @@ use proc_macros::DeriveIdentity;
//- minicore: derive, copy, clone
#[derive(proc_macros::C$0)] struct Test;
"#,
expect![[r#""#]],
expect![[r#"
de DeriveIdentity pub macro derive_identity
"#]],
);
}
}