@@ -218,23 +218,24 @@ impl<'a> Translator<'a> {
218
218
/// Translate a Rust path into its C equivalent.
219
219
fn translate_path ( & self , path : & syn:: TypePath ) -> Result < cdecl:: CTy , TranslationError > {
220
220
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
+ ) ) ;
235
235
}
236
236
}
237
237
}
238
+
238
239
let name = last. ident . to_string ( ) ;
239
240
let item = if self . ffi_items . contains_struct ( & name) {
240
241
MapInput :: StructType ( & name)
0 commit comments