From cd232734766d165981671c42d9b21b0dd4ae20cc Mon Sep 17 00:00:00 2001 From: Tai Sassen-Liang Date: Thu, 30 Mar 2017 12:26:02 +0200 Subject: [PATCH] #571: Allow ast_dump to print builtins; filter builtins locally --- src/clang.rs | 3 --- src/lib.rs | 11 ++++++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/clang.rs b/src/clang.rs index 2dbe5e514b..b4acf2046f 100644 --- a/src/clang.rs +++ b/src/clang.rs @@ -1482,9 +1482,6 @@ pub fn ast_dump(c: &Cursor, depth: isize) -> CXChildVisitResult { } fn print_cursor>(depth: isize, prefix: S, c: &Cursor) { - if c.is_builtin() { - return; - } let prefix = prefix.as_ref(); print_indent(depth, format!(" {}kind = {}", prefix, kind_to_str(c.kind()))); diff --git a/src/lib.rs b/src/lib.rs index 8f838c15ea..eccf80e347 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -896,8 +896,17 @@ fn parse(context: &mut BindgenContext) -> Result<(), ()> { } let cursor = context.translation_unit().cursor(); + if context.options().emit_ast { - cursor.visit(|cur| clang::ast_dump(&cur, 0)); + + fn dump_if_not_builtin(cur: &clang::Cursor) -> CXChildVisitResult { + if !cur.is_builtin() { + clang::ast_dump(&cur, 0) + } else { + CXChildVisit_Continue + } + } + cursor.visit(|cur| dump_if_not_builtin(&cur)); } let root = context.root_module();