|
3 | 3 | use proc_macro::TokenStream; |
4 | 4 | use proc_macro2::Span; |
5 | 5 | use quote::quote; |
6 | | -use syn::{Error, FnArg, ItemFn, ItemTrait, ReturnType, TraitItem}; |
| 6 | +use syn::{Error, FnArg, ItemFn, ReturnType}; |
7 | 7 |
|
8 | 8 | fn compiler_error(err: Error) -> TokenStream { |
9 | 9 | err.to_compile_error().into() |
@@ -104,55 +104,3 @@ pub fn secondary_main(attr: TokenStream, item: TokenStream) -> TokenStream { |
104 | 104 | "expect a function with type `fn(cpu_id: usize) -> !`", |
105 | 105 | ) |
106 | 106 | } |
107 | | - |
108 | | -#[doc(hidden)] |
109 | | -#[proc_macro_attribute] |
110 | | -pub fn def_plat_interface(attr: TokenStream, item: TokenStream) -> TokenStream { |
111 | | - if !attr.is_empty() { |
112 | | - return compiler_error(Error::new( |
113 | | - Span::call_site(), |
114 | | - "expect an empty attribute: `#[def_plat_interface]`", |
115 | | - )); |
116 | | - } |
117 | | - |
118 | | - let trait_ast = syn::parse_macro_input!(item as ItemTrait); |
119 | | - let trait_name = &trait_ast.ident; |
120 | | - |
121 | | - let mut fn_list = vec![]; |
122 | | - for item in &trait_ast.items { |
123 | | - if let TraitItem::Fn(method) = item { |
124 | | - let attrs = &method.attrs; |
125 | | - let sig = &method.sig; |
126 | | - let fn_name = &sig.ident; |
127 | | - |
128 | | - let mut args = vec![]; |
129 | | - for arg in &sig.inputs { |
130 | | - match arg { |
131 | | - FnArg::Receiver(_) => { |
132 | | - return compiler_error(Error::new_spanned( |
133 | | - arg, |
134 | | - "`self` is not allowed in the interface definition", |
135 | | - )); |
136 | | - } |
137 | | - FnArg::Typed(ty) => args.push(ty.pat.clone()), |
138 | | - } |
139 | | - } |
140 | | - |
141 | | - fn_list.push(quote! { |
142 | | - #(#attrs)* |
143 | | - #[inline] |
144 | | - pub #sig { |
145 | | - crate::__priv::call_interface!(#trait_name::#fn_name, #(#args),* ) |
146 | | - } |
147 | | - }); |
148 | | - } |
149 | | - } |
150 | | - |
151 | | - quote! { |
152 | | - #[crate::__priv::def_interface] |
153 | | - #trait_ast |
154 | | - |
155 | | - #(#fn_list)* |
156 | | - } |
157 | | - .into() |
158 | | -} |
0 commit comments