@@ -198,7 +198,7 @@ impl<'a, 'b> FunctionBindgen<'a, 'b> {
198
198
uwriteln ! ( self . lower_src, "var {lower_name} {c_typedef_target}" ) ;
199
199
for field in r. fields . iter ( ) {
200
200
let c_field_name = & self . get_c_field_name ( field) ;
201
- let field_name = & self . interface . field_name ( field) ;
201
+ let field_name = & self . get_go_field_name ( field) ;
202
202
203
203
self . lower_value (
204
204
& format ! ( "{param}.{field_name}" ) ,
@@ -439,7 +439,7 @@ impl<'a, 'b> FunctionBindgen<'a, 'b> {
439
439
ty_name = self . interface. get_ty( & Type :: Id ( * id) ) ,
440
440
) ;
441
441
for field in r. fields . iter ( ) {
442
- let field_name = & self . interface . field_name ( field) ;
442
+ let field_name = & self . get_go_field_name ( field) ;
443
443
let c_field_name = & self . get_c_field_name ( field) ;
444
444
self . lift_value (
445
445
& format ! ( "{param}.{c_field_name}" ) ,
@@ -690,6 +690,11 @@ impl<'a, 'b> FunctionBindgen<'a, 'b> {
690
690
}
691
691
692
692
pub ( crate ) fn get_c_field_name ( & mut self , field : & Field ) -> String {
693
- field. name . to_snake_case ( )
693
+ avoid_keyword ( field. name . to_snake_case ( ) . as_str ( ) )
694
+ }
695
+
696
+ pub ( crate ) fn get_go_field_name ( & mut self , field : & Field ) -> String {
697
+ let name = & self . interface . field_name ( field) ;
698
+ avoid_keyword ( name)
694
699
}
695
700
}
0 commit comments