Skip to content

Commit 2766951

Browse files
committed
ir: Don't parse default template parameter types.
It's a bunch of complexity we don't use nor need.
1 parent cbc0304 commit 2766951

File tree

4 files changed

+11
-30
lines changed

4 files changed

+11
-30
lines changed

libbindgen/src/ir/comp.rs

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -644,13 +644,7 @@ impl CompInfo {
644644
return CXChildVisit_Continue;
645645
}
646646

647-
let default_type = Item::from_ty(&cur.cur_type(),
648-
Some(cur),
649-
Some(potential_id),
650-
ctx)
651-
.ok();
652647
let param = Item::named_type(cur.spelling(),
653-
default_type,
654648
potential_id,
655649
ctx);
656650
ci.template_args.push(param);

libbindgen/src/ir/item.rs

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -499,8 +499,8 @@ impl Item {
499499
parent_template_args.iter().any(|parent_item| {
500500
let parent_ty = ctx.resolve_type(*parent_item);
501501
match (parent_ty.kind(), item_ty.kind()) {
502-
(&TypeKind::Named(ref n, _),
503-
&TypeKind::Named(ref i, _)) => n == i,
502+
(&TypeKind::Named(ref n),
503+
&TypeKind::Named(ref i)) => n == i,
504504
_ => false,
505505
}
506506
})
@@ -1163,7 +1163,6 @@ impl ClangItemParser for Item {
11631163
ty.spelling());
11641164
Ok(Self::named_type_with_id(id,
11651165
ty.spelling(),
1166-
None,
11671166
relevant_parent_id,
11681167
ctx))
11691168
} else {
@@ -1189,7 +1188,6 @@ impl ClangItemParser for Item {
11891188
/// available yet.
11901189
fn named_type_with_id<S>(id: ItemId,
11911190
name: S,
1192-
default: Option<ItemId>,
11931191
parent_id: ItemId,
11941192
ctx: &mut BindgenContext)
11951193
-> ItemId
@@ -1203,22 +1201,21 @@ impl ClangItemParser for Item {
12031201
None,
12041202
None,
12051203
parent_id,
1206-
ItemKind::Type(Type::named(name, default))),
1204+
ItemKind::Type(Type::named(name))),
12071205
None,
12081206
None);
12091207

12101208
id
12111209
}
12121210

12131211
fn named_type<S>(name: S,
1214-
default: Option<ItemId>,
12151212
parent_id: ItemId,
12161213
ctx: &mut BindgenContext)
12171214
-> ItemId
12181215
where S: Into<String>,
12191216
{
12201217
let id = ctx.next_item_id();
1221-
Self::named_type_with_id(id, name, default, parent_id, ctx)
1218+
Self::named_type_with_id(id, name, parent_id, ctx)
12221219
}
12231220
}
12241221

libbindgen/src/ir/ty.rs

Lines changed: 7 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -140,10 +140,10 @@ impl Type {
140140
}
141141

142142
/// Creates a new named type, with name `name`.
143-
pub fn named(name: String, default: Option<ItemId>) -> Self {
143+
pub fn named(name: String) -> Self {
144144
assert!(!name.is_empty());
145145
// TODO: stop duplicating the name, it's stupid.
146-
let kind = TypeKind::Named(name.clone(), default);
146+
let kind = TypeKind::Named(name.clone());
147147
Self::new(Some(name), None, kind, false)
148148
}
149149

@@ -318,12 +318,12 @@ impl Type {
318318
ty: &Type)
319319
-> bool {
320320
let name = match *ty.kind() {
321-
TypeKind::Named(ref name, _) => name,
321+
TypeKind::Named(ref name) => name,
322322
ref other @ _ => unreachable!("Not a named type: {:?}", other),
323323
};
324324

325325
match self.kind {
326-
TypeKind::Named(ref this_name, _) => this_name == name,
326+
TypeKind::Named(ref this_name) => this_name == name,
327327
TypeKind::ResolvedTypeRef(t) |
328328
TypeKind::Array(t, _) |
329329
TypeKind::Pointer(t) |
@@ -478,9 +478,8 @@ pub enum TypeKind {
478478
/// replace one type with another.
479479
ResolvedTypeRef(ItemId),
480480

481-
/// A named type, that is, a template parameter, with an optional default
482-
/// type.
483-
Named(String, Option<ItemId>),
481+
/// A named type, that is, a template parameter.
482+
Named(String),
484483
}
485484

486485
impl Type {
@@ -675,15 +674,8 @@ impl Type {
675674
return CXChildVisit_Continue;
676675
}
677676

678-
let default_type =
679-
Item::from_ty(&cur.cur_type(),
680-
Some(cur),
681-
Some(potential_id),
682-
ctx)
683-
.ok();
684677
let param =
685678
Item::named_type(cur.spelling(),
686-
default_type,
687679
potential_id,
688680
ctx);
689681
args.push(param);
@@ -903,7 +895,6 @@ impl TypeCollector for Type {
903895
TypeKind::Reference(inner) |
904896
TypeKind::Array(inner, _) |
905897
TypeKind::Alias(_, inner) |
906-
TypeKind::Named(_, Some(inner)) |
907898
TypeKind::ResolvedTypeRef(inner) => {
908899
types.insert(inner);
909900
}
@@ -919,6 +910,7 @@ impl TypeCollector for Type {
919910
TypeKind::Function(ref sig) => {
920911
sig.collect_types(context, types, item)
921912
}
913+
TypeKind::Named(_) => {},
922914
// FIXME: Pending types!
923915
ref other @ _ => {
924916
debug!("<Type as TypeCollector>::collect_types: Ignoring: \

libbindgen/src/parse.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,6 @@ pub trait ClangItemParser: Sized {
8282

8383
/// Create a named template type.
8484
fn named_type<S>(name: S,
85-
default: Option<ItemId>,
8685
parent: ItemId,
8786
context: &mut BindgenContext)
8887
-> ItemId
@@ -92,7 +91,6 @@ pub trait ClangItemParser: Sized {
9291
/// `ItemId`.
9392
fn named_type_with_id<S>(id: ItemId,
9493
name: S,
95-
default: Option<ItemId>,
9694
parent: ItemId,
9795
context: &mut BindgenContext)
9896
-> ItemId

0 commit comments

Comments
 (0)