Skip to content

Commit 50ab365

Browse files
committed
[bindings] Handle ::-prefixed paths in a few places
1 parent cfa7915 commit 50ab365

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

c-bindings-gen/src/types.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -878,8 +878,9 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
878878
} else { p_arg };
879879

880880
if p.leading_colon.is_some() {
881-
// At some point we may need this, but for now, its unused, so just fail.
882-
return None;
881+
Some(p.segments.iter().enumerate().map(|(idx, seg)| {
882+
format!("{}{}", if idx == 0 { "" } else { "::" }, seg.ident)
883+
}).collect())
883884
} else if let Some(id) = p.get_ident() {
884885
self.maybe_resolve_ident(id)
885886
} else {
@@ -1158,7 +1159,7 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
11581159
ptr_for_ref, tupleconv, prefix, sliceconv, path_lookup, decl_lookup);
11591160
},
11601161
syn::Type::Path(p) => {
1161-
if p.qself.is_some() || p.path.leading_colon.is_some() {
1162+
if p.qself.is_some() {
11621163
unimplemented!();
11631164
}
11641165

@@ -1471,7 +1472,7 @@ impl<'a, 'c: 'a> TypeResolver<'a, 'c> {
14711472
}
14721473
},
14731474
syn::Type::Path(p) => {
1474-
if p.qself.is_some() || p.path.leading_colon.is_some() {
1475+
if p.qself.is_some() {
14751476
unimplemented!();
14761477
}
14771478
let resolved_path = self.resolve_path(&p.path, generics);

0 commit comments

Comments
 (0)