|
|
@@ -45,11 +45,11 @@ fn generate_type_aliases( |
45 | fn_return_type: Box<Type>, |
45 | fn_return_type: Box<Type>, |
46 | fn_name: &syn::Ident, |
46 | fn_name: &syn::Ident, |
47 | ) -> Vec<proc_macro2::TokenStream> { |
47 | ) -> Vec<proc_macro2::TokenStream> { |
48 | let type_t0 = format_ident!("_{}_T0", fn_name); |
48 | let type_t0 = format_ident!("_T0{}", fn_name); |
49 | let mut type_aliases = vec![quote! { type #type_t0 = #fn_return_type }]; |
49 | let mut type_aliases = vec![quote! { type #type_t0 = #fn_return_type }]; |
50 | for (i, t) in (1..).zip(fn_arg_types.into_iter().rev()) { |
50 | for (i, t) in (1..).zip(fn_arg_types.into_iter().rev()) { |
51 | let p = format_ident!("_{}_{}", fn_name, format!("T{}", i - 1)); |
51 | let p = format_ident!("_{}{}", format!("T{}", i - 1), fn_name); |
52 | let n = format_ident!("_{}_{}", fn_name, format!("T{}", i)); |
52 | let n = format_ident!("_{}{}", format!("T{}", i), fn_name); |
53 | type_aliases.push(quote! { |
53 | type_aliases.push(quote! { |
54 | type #n = impl Fn(#t) -> #p |
54 | type #n = impl Fn(#t) -> #p |
55 | }) |
55 | }) |
@@ -83,7 +83,7 @@ fn generate_curry(parsed: ItemFn) -> proc_macro2::TokenStream { |
83 | &fn_name, |
83 | &fn_name, |
84 | ); |
84 | ); |
85 | |
85 | |
86 | let return_type = format_ident!("_{}_{}", &fn_name, format!("T{}", type_aliases.len() - 1)); |
86 | let return_type = format_ident!("_{}{}", format!("T{}", type_aliases.len() - 1), &fn_name); |
87 | |
87 | |
88 | let gen = quote! { |
88 | let gen = quote! { |
89 | #(#type_aliases);* ; |
89 | #(#type_aliases);* ; |
|