aboutsummaryrefslogtreecommitdiff
path: root/crates/ra_hir_ty/src
diff options
context:
space:
mode:
authorEdwin Cheng <[email protected]>2020-03-18 09:47:59 +0000
committerEdwin Cheng <[email protected]>2020-03-25 11:50:12 +0000
commit34dc8d25c1e461cc311d6d4404f74502513cd3ae (patch)
tree00aab26b07c1cd42dfa350eeddc6c41e5bea178b /crates/ra_hir_ty/src
parente2dd17f75b1bb5e1185acff66211e74430177592 (diff)
Add basic custom derive lowering
Diffstat (limited to 'crates/ra_hir_ty/src')
-rw-r--r--crates/ra_hir_ty/src/tests/macros.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/crates/ra_hir_ty/src/tests/macros.rs b/crates/ra_hir_ty/src/tests/macros.rs
index 2e309a379..d59e4eea6 100644
--- a/crates/ra_hir_ty/src/tests/macros.rs
+++ b/crates/ra_hir_ty/src/tests/macros.rs
@@ -639,3 +639,26 @@ mod clone {
639 ); 639 );
640 assert_eq!("(Wrapper<S>, {unknown})", type_at_pos(&db, pos)); 640 assert_eq!("(Wrapper<S>, {unknown})", type_at_pos(&db, pos));
641} 641}
642
643#[test]
644fn infer_custom_derive_simple() {
645 let (db, pos) = TestDB::with_position(
646 r#"
647//- /main.rs crate:main deps:foo
648use foo::Foo;
649
650#[derive(Foo)]
651struct S{}
652
653fn test() {
654 S{}<|>;
655}
656
657//- /lib.rs crate:foo
658#[proc_macro_derive(Foo)]
659pub fn derive_foo(_item: TokenStream) -> TokenStream {
660}
661"#,
662 );
663 assert_eq!("S", type_at_pos(&db, pos));
664}