summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/gen.rs15
-rw-r--r--src/parser.rs2
2 files changed, 16 insertions, 1 deletions
diff --git a/src/gen.rs b/src/gen.rs
index fc2cadb8..eab4478a 100644
--- a/src/gen.rs
+++ b/src/gen.rs
@@ -968,6 +968,7 @@ fn cstruct_to_rs(ctx: &mut GenCtx, name: &str, ci: CompInfo,
vffields.push(field);
}
+ let mut counts: HashMap<String, isize> = HashMap::new();
for vm in ci.vmethods.iter() {
let ty = match vm.ty {
TFuncPtr(ref sig) => {
@@ -977,7 +978,19 @@ fn cstruct_to_rs(ctx: &mut GenCtx, name: &str, ci: CompInfo,
_ => unreachable!()
};
- let name = first(rust_id(ctx, &vm.name));
+ let mut name = vm.name.clone();
+ let mut count = 0;
+ match counts.get(&vm.name) {
+ Some(x) => {
+ count = *x;
+ name.push_str(&x.to_string());
+ },
+ None => ()
+ }
+ count += 1;
+ counts.insert(vm.name.clone(), count);
+
+ let name = first(rust_id(ctx, &name));
vffields.push(ast::StructField {
span: ctx.span,
diff --git a/src/parser.rs b/src/parser.rs
index 68578723..d8227f3a 100644
--- a/src/parser.rs
+++ b/src/parser.rs
@@ -1490,6 +1490,7 @@ pub fn parse(options: ClangParserOptions, logger: &Logger) -> Result<ModuleMap,
}
if ctx.err_count > 0 {
+ logger.error(&format!("{} errors after diagnostics", ctx.err_count));
return Err(())
}
@@ -1510,6 +1511,7 @@ pub fn parse(options: ClangParserOptions, logger: &Logger) -> Result<ModuleMap,
ix.dispose();
if ctx.err_count > 0 {
+ logger.error(&format!("{} errors after translation", ctx.err_count));
return Err(())
}