From 34dc8d25c1e461cc311d6d4404f74502513cd3ae Mon Sep 17 00:00:00 2001 From: Edwin Cheng Date: Wed, 18 Mar 2020 17:47:59 +0800 Subject: Add basic custom derive lowering --- crates/ra_hir_ty/src/tests/macros.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'crates/ra_hir_ty/src') 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 { ); assert_eq!("(Wrapper, {unknown})", type_at_pos(&db, pos)); } + +#[test] +fn infer_custom_derive_simple() { + let (db, pos) = TestDB::with_position( + r#" +//- /main.rs crate:main deps:foo +use foo::Foo; + +#[derive(Foo)] +struct S{} + +fn test() { + S{}<|>; +} + +//- /lib.rs crate:foo +#[proc_macro_derive(Foo)] +pub fn derive_foo(_item: TokenStream) -> TokenStream { +} +"#, + ); + assert_eq!("S", type_at_pos(&db, pos)); +} -- cgit v1.2.3