rules_rust
rules_rust copied to clipboard
Updated rust-analyzer to use repo vs generated files as crate roots
This change updates the rust_analyzer_aspect to attempt to match generated crate root sources to srcs inputs and use the the path of the source file in place of the generated path. The generated path is then added to sources.include_dirs for compatibility. The impact of this can be seen in the following diff of the @rules_rust//:rust-project.json file:
--- rust-project.old.json 2024-06-28 09:00:51
+++ rust-project.json 2024-06-28 09:04:43
@@ -821,10 +821,16 @@
},
{
"display_name": "libgensrc_with_crate_root",
- "root_module": "/private/var/tmp/_bazel_user/76282c66b0dfe3c5cb9a230bdc913a52/execroot/rules_rust/bazel-out/darwin_arm64-fastbuild/bin/test/generated_inputs/lib.rs",
+ "root_module": "test/generated_inputs/lib.rs",
"edition": "2018",
"deps": [],
"is_workspace_member": true,
+ "source": {
+ "include_dirs": [
+ "/private/var/tmp/_bazel_user/76282c66b0dfe3c5cb9a230bdc913a52/execroot/rules_rust/bazel-out/darwin_arm64-fastbuild/bin/test/generated_inputs"
+ ],
+ "exclude_dirs": []
+ },
"cfg": [
"test",
"debug_assertions"
@@ -850,10 +856,16 @@
...
...
...
closes https://github.com/bazelbuild/rules_rust/issues/2716