]> git.lizzy.rs Git - rust.git/commitdiff
Add builtin derives to attribute completion fixtures
authorLukas Wirth <lukastw97@gmail.com>
Wed, 16 Jun 2021 17:25:09 +0000 (19:25 +0200)
committerLukas Wirth <lukastw97@gmail.com>
Wed, 16 Jun 2021 17:25:09 +0000 (19:25 +0200)
crates/ide_completion/src/completions/attribute/derive.rs

index 7b3133e5396d93ab4eca908d197e1fe6e06d5afc..c59add6c544d318b9e7fb5ce28d3be028bbf664b 100644 (file)
@@ -83,7 +83,31 @@ mod tests {
     use crate::{test_utils::completion_list, CompletionKind};
 
     fn check(ra_fixture: &str, expect: Expect) {
-        let actual = completion_list(ra_fixture, CompletionKind::Attribute);
+        let builtin_derives = r#"
+#[rustc_builtin_macro]
+pub macro Clone {}
+#[rustc_builtin_macro]
+pub macro Copy {}
+#[rustc_builtin_macro]
+pub macro Default {}
+#[rustc_builtin_macro]
+pub macro Debug {}
+#[rustc_builtin_macro]
+pub macro Hash {}
+#[rustc_builtin_macro]
+pub macro PartialEq {}
+#[rustc_builtin_macro]
+pub macro Eq {}
+#[rustc_builtin_macro]
+pub macro PartialOrd {}
+#[rustc_builtin_macro]
+pub macro Ord {}
+
+"#;
+        let actual = completion_list(
+            &format!("{} {}", builtin_derives, ra_fixture),
+            CompletionKind::Attribute,
+        );
         expect.assert_eq(&actual);
     }
 
@@ -94,19 +118,55 @@ fn no_completion_for_incorrect_derive() {
 
     #[test]
     fn empty_derive() {
-        // FIXME: Add build-in derives to fixture.
-        check(r#"#[derive($0)] struct Test;"#, expect![[r#""#]]);
+        check(
+            r#"#[derive($0)] struct Test;"#,
+            expect![[r#"
+            at PartialEq
+            at Default
+            at PartialEq, Eq
+            at PartialEq, Eq, PartialOrd, Ord
+            at Clone, Copy
+            at Debug
+            at Clone
+            at Hash
+            at PartialEq, PartialOrd
+        "#]],
+        );
     }
 
     #[test]
     fn derive_with_input() {
-        // FIXME: Add build-in derives to fixture.
-        check(r#"#[derive(serde::Serialize, PartialEq, $0)] struct Test;"#, expect![[r#""#]])
+        check(
+            r#"#[derive(serde::Serialize, PartialEq, $0)] struct Test;"#,
+            expect![[r#"
+            at PartialEq
+            at Default
+            at Eq
+            at Eq, PartialOrd, Ord
+            at Clone, Copy
+            at Debug
+            at Clone
+            at Hash
+            at PartialOrd
+        "#]],
+        )
     }
 
     #[test]
     fn derive_with_input2() {
-        // FIXME: Add build-in derives to fixture.
-        check(r#"#[derive($0 serde::Serialize, PartialEq)] struct Test;"#, expect![[r#""#]])
+        check(
+            r#"#[derive($0 serde::Serialize, PartialEq)] struct Test;"#,
+            expect![[r#"
+            at PartialEq
+            at Default
+            at Eq
+            at Eq, PartialOrd, Ord
+            at Clone, Copy
+            at Debug
+            at Clone
+            at Hash
+            at PartialOrd
+        "#]],
+        )
     }
 }