Skip to content

Commit 9f75be3

Browse files
author
Bogdan Mircea
committed
extracted changes from write_rust_analyzer_spec_file
1 parent b315cac commit 9f75be3

2 files changed

Lines changed: 9 additions & 7 deletions

File tree

extensions/prost/private/prost.bzl

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,8 @@ def _rust_prost_aspect_impl(target, ctx):
299299
# https://github.com/rust-analyzer/rust-analyzer/blob/2021-11-15/crates/project_model/src/workspace.rs#L529-L531
300300
cfgs = ["test", "debug_assertions"]
301301

302+
build_info_out_dirs = [dep_variant_info.build_info.out_dir] if dep_variant_info.build_info != None and dep_variant_info.build_info.out_dir != None else None
303+
302304
rust_analyzer_info = write_rust_analyzer_spec_file(ctx, ctx.rule.attr, ctx.label, RustAnalyzerInfo(
303305
aliases = {},
304306
crate = dep_variant_info.crate_info,
@@ -307,7 +309,7 @@ def _rust_prost_aspect_impl(target, ctx):
307309
deps = rust_analyzer_deps,
308310
crate_specs = depset(transitive = [dep.crate_specs for dep in rust_analyzer_deps]),
309311
proc_macro_dylibs = depset(transitive = [dep.proc_macro_dylibs for dep in rust_analyzer_deps]),
310-
build_info_out_dirs = depset(transitive = [dep.build_info_out_dirs for dep in rust_analyzer_deps]),
312+
build_info_out_dirs = depset(direct = build_info_out_dirs, transitive = [dep.build_info_out_dirs for dep in rust_analyzer_deps]),
311313
proc_macro_dylib = None,
312314
build_info = dep_variant_info.build_info,
313315
))

rust/private/rust_analyzer.bzl

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,6 @@ def write_rust_analyzer_spec_file(ctx, attrs, owner, base_info):
4545
RustAnalyzerInfo: Info with the embedded spec file.
4646
"""
4747
crate_spec = ctx.actions.declare_file("{}.rust_analyzer_crate_spec.json".format(owner.name))
48-
proc_macro_dylibs = [base_info.proc_macro_dylib] if base_info.proc_macro_dylib else None
49-
build_info_out_dirs = [base_info.build_info.out_dir] if base_info.build_info != None and base_info.build_info.out_dir != None else None
5048

5149
# Recreate the provider with the spec file embedded in it.
5250
rust_analyzer_info = RustAnalyzerInfo(
@@ -56,8 +54,8 @@ def write_rust_analyzer_spec_file(ctx, attrs, owner, base_info):
5654
env = base_info.env,
5755
deps = base_info.deps,
5856
crate_specs = depset(direct = [crate_spec], transitive = [base_info.crate_specs]),
59-
proc_macro_dylibs = depset(direct = proc_macro_dylibs, transitive = [base_info.proc_macro_dylibs]),
60-
build_info_out_dirs = depset(direct = build_info_out_dirs, transitive = [base_info.build_info_out_dirs]),
57+
proc_macro_dylibs = depset(transitive = [base_info.proc_macro_dylibs]),
58+
build_info_out_dirs = depset(transitive = [base_info.build_info_out_dirs]),
6159
proc_macro_dylib = base_info.proc_macro_dylib,
6260
build_info = base_info.build_info,
6361
)
@@ -140,6 +138,8 @@ def _rust_analyzer_aspect_impl(target, ctx):
140138
aliases[labels_to_rais[aliased_target.label]] = aliased_name
141139

142140
proc_macro_dylib = find_proc_macro_dylib(toolchain, target)
141+
proc_macro_dylibs = [proc_macro_dylib] if proc_macro_dylib else None
142+
build_info_out_dirs = [build_info.out_dir] if build_info != None and build_info.out_dir != None else None
143143

144144
rust_analyzer_info = write_rust_analyzer_spec_file(ctx, ctx.rule.attr, ctx.label, RustAnalyzerInfo(
145145
aliases = aliases,
@@ -148,8 +148,8 @@ def _rust_analyzer_aspect_impl(target, ctx):
148148
env = crate_info.rustc_env,
149149
deps = dep_infos,
150150
crate_specs = depset(transitive = [dep.crate_specs for dep in dep_infos]),
151-
proc_macro_dylibs = depset(transitive = [dep.proc_macro_dylibs for dep in dep_infos]),
152-
build_info_out_dirs = depset(transitive = [dep.build_info_out_dirs for dep in dep_infos]),
151+
proc_macro_dylibs = depset(direct = proc_macro_dylibs, transitive = [dep.proc_macro_dylibs for dep in dep_infos]),
152+
build_info_out_dirs = depset(direct = build_info_out_dirs, transitive = [dep.build_info_out_dirs for dep in dep_infos]),
153153
proc_macro_dylib = proc_macro_dylib,
154154
build_info = build_info,
155155
))

0 commit comments

Comments
 (0)