From 021a4af2ba45c2191568ec347d871df57206917e Mon Sep 17 00:00:00 2001 From: Matt Corallo Date: Tue, 12 Oct 2021 02:09:03 +0000 Subject: [PATCH] Correctly convert Option> to C --- c-bindings-gen/src/types.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/c-bindings-gen/src/types.rs b/c-bindings-gen/src/types.rs index 9220dd1..f87e2a0 100644 --- a/c-bindings-gen/src/types.rs +++ b/c-bindings-gen/src/types.rs @@ -1374,10 +1374,10 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> { ], " }", ContainerPrefixLocation::OutsideConv)); } } else if self.is_primitive(&inner_path) || self.c_type_from_path(&inner_path, false, false).is_none() { - let inner_name = inner_path.rsplit("::").next().unwrap(); + let inner_name = self.get_c_mangled_container_type(vec![single_contained.unwrap()], generics, "Option").unwrap(); return Some(("if ", vec![ - (format!(".is_none() {{ {}::COption_{}Z::None }} else {{ {}::COption_{}Z::Some(", - Self::generated_container_path(), inner_name, Self::generated_container_path(), inner_name), + (format!(".is_none() {{ {}::None }} else {{ {}::Some(", + inner_name, inner_name), format!("{}.unwrap()", var_access)) ], ") }", ContainerPrefixLocation::PerConv)); } else { -- 2.39.5