diff options
Diffstat (limited to 'crates/ra_hir_ty/src')
-rw-r--r-- | crates/ra_hir_ty/src/tests/macros.rs | 23 |
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] | ||
644 | fn infer_custom_derive_simple() { | ||
645 | let (db, pos) = TestDB::with_position( | ||
646 | r#" | ||
647 | //- /main.rs crate:main deps:foo | ||
648 | use foo::Foo; | ||
649 | |||
650 | #[derive(Foo)] | ||
651 | struct S{} | ||
652 | |||
653 | fn test() { | ||
654 | S{}<|>; | ||
655 | } | ||
656 | |||
657 | //- /lib.rs crate:foo | ||
658 | #[proc_macro_derive(Foo)] | ||
659 | pub fn derive_foo(_item: TokenStream) -> TokenStream { | ||
660 | } | ||
661 | "#, | ||
662 | ); | ||
663 | assert_eq!("S", type_at_pos(&db, pos)); | ||
664 | } | ||