@@ -218,23 +218,24 @@ impl<'a> Translator<'a> {
218218 /// Translate a Rust path into its C equivalent.
219219 fn translate_path ( & self , path : & syn:: TypePath ) -> Result < cdecl:: CTy , TranslationError > {
220220 let last = path. path . segments . last ( ) . unwrap ( ) ;
221- if let syn:: PathArguments :: AngleBracketed ( args) = & last. arguments {
222- if let syn:: GenericArgument :: Type ( inner_ty) = args. args . first ( ) . unwrap ( ) {
223- // Option<T> is ONLY ffi-safe if it contains a function pointer, or a reference.
224- match inner_ty {
225- syn :: Type :: Reference ( _ ) | syn :: Type :: BareFn ( _ ) => {
226- return self . translate_type ( inner_ty ) ;
227- }
228- _ => {
229- return Err ( TranslationError :: new (
230- TranslationErrorKind :: NotFfiCompatible ,
231- & path . to_token_stream ( ) . to_string ( ) ,
232- inner_ty . span ( ) ,
233- ) ) ;
234- }
221+ if let syn:: PathArguments :: AngleBracketed ( args) = & last. arguments
222+ && let syn:: GenericArgument :: Type ( inner_ty) = args. args . first ( ) . unwrap ( )
223+ {
224+ // Option<T> is ONLY ffi-safe if it contains a function pointer, or a reference.
225+ match inner_ty {
226+ syn :: Type :: Reference ( _ ) | syn :: Type :: BareFn ( _ ) => {
227+ return self . translate_type ( inner_ty ) ;
228+ }
229+ _ => {
230+ return Err ( TranslationError :: new (
231+ TranslationErrorKind :: NotFfiCompatible ,
232+ & path . to_token_stream ( ) . to_string ( ) ,
233+ inner_ty . span ( ) ,
234+ ) ) ;
235235 }
236236 }
237237 }
238+
238239 let name = last. ident . to_string ( ) ;
239240 let item = if self . ffi_items . contains_struct ( & name) {
240241 MapInput :: StructType ( & name)
0 commit comments