@@ -84,9 +84,8 @@ fn generate_class_bindings(
8484) -> TokenStream {
8585 // types and methods
8686 let types_and_methods = {
87- let documentation = generate_class_documentation ( api, class) ;
88-
89- let class_struct = generate_class_struct ( class) ;
87+ let class_doc = generate_class_documentation ( api, class) ;
88+ let class_struct = generate_class_struct ( class, class_doc) ;
9089
9190 let enums = generate_enums ( class) ;
9291
@@ -99,7 +98,6 @@ fn generate_class_bindings(
9998 let class_impl = generate_class_impl ( class, icalls, docs) ;
10099
101100 quote ! {
102- #documentation
103101 #class_struct
104102 #enums
105103 #constants
@@ -195,17 +193,22 @@ pub(crate) mod test_prelude {
195193
196194 #[ test]
197195 fn sanity_test_generated_code ( ) {
196+ // Tests whether each generated snippet individually constitutes a valid AST representation of Rust code
197+
198198 let api = Api :: new ( include_str ! ( "../../gdnative-bindings/api.json" ) ) ;
199199 let mut buffer = BufWriter :: new ( Vec :: with_capacity ( 16384 ) ) ;
200200 for class in & api. classes {
201201 let mut icalls = HashMap :: new ( ) ;
202202
203- let code = generate_class_documentation ( & api, & class) ;
203+ let code = generate_module_doc ( & class) ;
204+ write ! ( & mut buffer, "{}" , code) . unwrap ( ) ;
205+ validate_and_clear_buffer ! ( buffer) ;
206+
207+ let class_doc = generate_class_documentation ( & api, & class) ;
204208 write ! ( & mut buffer, "{}" , code) . unwrap ( ) ;
205- write ! ( & mut buffer, "{}" , quote! { struct Docs { } } ) . unwrap ( ) ;
206209 validate_and_clear_buffer ! ( buffer) ;
207210
208- let code = generate_class_struct ( & class) ;
211+ let code = generate_class_struct ( & class, class_doc ) ;
209212 write ! ( & mut buffer, "{}" , code) . unwrap ( ) ;
210213 validate_and_clear_buffer ! ( buffer) ;
211214
0 commit comments