Fixes Rust code generation for single file output when using namespaces #8877
+994
−26
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
All existing tests only compile Rust code using
--rust-module-root-file.New include tests have been added for Rust using
include_test1.fbsandinclude_test2.fbs, without-rust-module-root-file.The imports for these tests have been moved to their own test file, as the existing
intergration_test.rsfile hides compilation issues from code generation due to symbols brought into scope outside of the generated code (e.g.extern crate allocis declared in the root module). The importing ofinclude_testcode within otherrust_usage_testintegration test files has been removed, as it's not accomplishing anything.Finally, this PR includes a fix for #8876. The core issue is exposed by these new tests. When performing code generation within a single file, extern crate alloc needs to be declared to bring alloc into scope within every inner namespace. Within code generation, we move
extern crate allocfrom being declared at the top of the file, to being declared within every namespace.