@@ -38,15 +38,16 @@ pub fn generate_builtin_class_files(
38
38
std:: fs:: create_dir_all ( gen_path) . expect ( "create classes directory" ) ;
39
39
40
40
let mut modules = vec ! [ ] ;
41
- for class in api. builtins . iter ( ) {
42
- let Some ( class) = class . builtin_class . as_ref ( ) else {
41
+ for variant in api. builtins . iter ( ) {
42
+ let Some ( class) = variant . builtin_class . as_ref ( ) else {
43
43
continue ;
44
44
} ;
45
45
46
46
// let godot_class_name = &class.name().godot_ty;
47
47
let module_name = class. mod_name ( ) ;
48
48
49
- let generated_class = make_builtin_class ( class, ctx) ;
49
+ let variant_shout_name = util:: ident ( variant. godot_shout_name ( ) ) ;
50
+ let generated_class = make_builtin_class ( class, & variant_shout_name, ctx) ;
50
51
let file_contents = generated_class. code ;
51
52
52
53
let out_path = gen_path. join ( format ! ( "{}.rs" , module_name. rust_mod) ) ;
@@ -87,7 +88,11 @@ pub fn make_builtin_module_file(classes_and_modules: Vec<GeneratedBuiltinModule>
87
88
// ----------------------------------------------------------------------------------------------------------------------------------------------
88
89
// Implementation
89
90
90
- fn make_builtin_class ( class : & BuiltinClass , ctx : & mut Context ) -> GeneratedBuiltin {
91
+ fn make_builtin_class (
92
+ class : & BuiltinClass ,
93
+ variant_shout_name : & Ident ,
94
+ ctx : & mut Context ,
95
+ ) -> GeneratedBuiltin {
91
96
let godot_name = & class. name ( ) . godot_ty ;
92
97
93
98
let RustTy :: BuiltinIdent ( outer_class) = conv:: to_rust_type ( godot_name, None , ctx) else {
@@ -98,7 +103,7 @@ fn make_builtin_class(class: &BuiltinClass, ctx: &mut Context) -> GeneratedBuilt
98
103
let FnDefinitions {
99
104
functions : methods,
100
105
builders,
101
- } = make_builtin_methods ( class, & class. methods , ctx) ;
106
+ } = make_builtin_methods ( class, variant_shout_name , & class. methods , ctx) ;
102
107
103
108
let imports = util:: make_imports ( ) ;
104
109
let enums = enums:: make_enums ( & class. enums , & TokenStream :: new ( ) ) ;
@@ -134,12 +139,13 @@ fn make_builtin_class(class: &BuiltinClass, ctx: &mut Context) -> GeneratedBuilt
134
139
135
140
fn make_builtin_methods (
136
141
builtin_class : & BuiltinClass ,
142
+ variant_shout_name : & Ident ,
137
143
methods : & [ BuiltinMethod ] ,
138
144
ctx : & mut Context ,
139
145
) -> FnDefinitions {
140
- let definitions = methods
141
- . iter ( )
142
- . map ( |method| make_builtin_method_definition ( builtin_class , method , ctx ) ) ;
146
+ let definitions = methods. iter ( ) . map ( |method| {
147
+ make_builtin_method_definition ( builtin_class , variant_shout_name , method , ctx )
148
+ } ) ;
143
149
144
150
FnDefinitions :: expand ( definitions)
145
151
}
@@ -180,6 +186,7 @@ fn method_safety_doc(class_name: &TyName, method: &BuiltinMethod) -> Option<Toke
180
186
181
187
fn make_builtin_method_definition (
182
188
builtin_class : & BuiltinClass ,
189
+ variant_shout_name : & Ident ,
183
190
method : & BuiltinMethod ,
184
191
ctx : & mut Context ,
185
192
) -> FnDefinition {
@@ -192,7 +199,7 @@ fn make_builtin_method_definition(
192
199
let method_name_str = method. godot_name ( ) ;
193
200
194
201
let fptr_access = if cfg ! ( feature = "codegen-lazy-fptrs" ) {
195
- let variant_type = quote ! { sys:: VariantType :: #builtin_name } ;
202
+ let variant_type = quote ! { sys:: VariantType :: #variant_shout_name } ;
196
203
let variant_type_str = & builtin_name. godot_ty ;
197
204
198
205
quote ! {
0 commit comments