Skip to content

Commit 104a501

Browse files
committed
Speedup collect_deps
1 parent 31453f9 commit 104a501

File tree

11 files changed

+43
-35
lines changed

11 files changed

+43
-35
lines changed

extensions/prost/private/prost.bzl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,8 @@ def _compile_rust(
209209
type = "rlib",
210210
root = src,
211211
srcs = depset([src]),
212-
deps = depset(deps),
213-
proc_macro_deps = depset([]),
212+
deps = deps,
213+
proc_macro_deps = [],
214214
aliases = {},
215215
output = lib,
216216
metadata = rmeta,

extensions/protobuf/proto.bzl

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -215,11 +215,9 @@ def _rust_proto_compile(protos, descriptor_sets, imports, crate_name, ctx, is_gr
215215
metadata_supports_pipelining = can_use_metadata_for_pipelining(toolchain, "rlib")
216216

217217
# Gather all dependencies for compilation
218-
compile_action_deps = depset(
219-
transform_deps(
220-
compile_deps +
221-
proto_toolchain.grpc_compile_deps if is_grpc else proto_toolchain.proto_compile_deps,
222-
),
218+
compile_action_deps = transform_deps(
219+
compile_deps +
220+
proto_toolchain.grpc_compile_deps if is_grpc else proto_toolchain.proto_compile_deps,
223221
)
224222

225223
providers = rustc_compile_action(
@@ -232,7 +230,7 @@ def _rust_proto_compile(protos, descriptor_sets, imports, crate_name, ctx, is_gr
232230
root = lib_rs,
233231
srcs = depset(srcs),
234232
deps = compile_action_deps,
235-
proc_macro_deps = depset([]),
233+
proc_macro_deps = [],
236234
aliases = {},
237235
output = rust_lib,
238236
metadata = rust_metadata,

extensions/wasm_bindgen/private/wasm_bindgen_test.bzl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,8 @@ def _rust_wasm_bindgen_test_impl(ctx):
122122
type = crate_type,
123123
root = crate.root,
124124
srcs = depset(srcs, transitive = [crate.srcs]),
125-
deps = depset(deps, transitive = [crate.deps]),
126-
proc_macro_deps = depset(proc_macro_deps, transitive = [crate.proc_macro_deps]),
125+
deps = depset(deps, transitive = [crate.deps]).to_list(),
126+
proc_macro_deps = depset(proc_macro_deps, transitive = [crate.proc_macro_deps]).to_list(),
127127
aliases = {},
128128
output = output,
129129
rustc_output = generate_output_diagnostics(ctx, output),

rust/private/clippy.bzl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,8 +116,8 @@ def _clippy_aspect_impl(target, ctx):
116116
cc_toolchain, feature_configuration = find_cc_toolchain(ctx)
117117

118118
dep_info, build_info, _ = collect_deps(
119-
deps = crate_info.deps,
120-
proc_macro_deps = crate_info.proc_macro_deps,
119+
deps = crate_info.deps.to_list(),
120+
proc_macro_deps = crate_info.proc_macro_deps.to_list(),
121121
aliases = crate_info.aliases,
122122
)
123123

rust/private/rust.bzl

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -220,8 +220,8 @@ def _rust_library_common(ctx, crate_type):
220220
type = crate_type,
221221
root = crate_root,
222222
srcs = depset(srcs),
223-
deps = depset(deps),
224-
proc_macro_deps = depset(proc_macro_deps),
223+
deps = deps,
224+
proc_macro_deps = proc_macro_deps,
225225
aliases = ctx.attr.aliases,
226226
output = rust_lib,
227227
rustc_output = generate_output_diagnostics(ctx, rust_lib),
@@ -285,8 +285,8 @@ def _rust_binary_impl(ctx):
285285
type = ctx.attr.crate_type,
286286
root = crate_root,
287287
srcs = depset(srcs),
288-
deps = depset(deps),
289-
proc_macro_deps = depset(proc_macro_deps),
288+
deps = deps,
289+
proc_macro_deps = proc_macro_deps,
290290
aliases = ctx.attr.aliases,
291291
output = output,
292292
rustc_output = generate_output_diagnostics(ctx, output),
@@ -417,8 +417,8 @@ def _rust_test_impl(ctx):
417417
type = crate_type,
418418
root = crate.root,
419419
srcs = depset(srcs),
420-
deps = depset(deps, transitive = [crate.deps]),
421-
proc_macro_deps = depset(proc_macro_deps, transitive = [crate.proc_macro_deps]),
420+
deps = depset(deps, transitive = [crate.deps]).to_list(),
421+
proc_macro_deps = depset(proc_macro_deps, transitive = [crate.proc_macro_deps]).to_list(),
422422
aliases = aliases,
423423
output = output,
424424
rustc_output = generate_output_diagnostics(ctx, output),
@@ -481,8 +481,8 @@ def _rust_test_impl(ctx):
481481
type = crate_type,
482482
root = crate_root,
483483
srcs = depset(srcs),
484-
deps = depset(deps),
485-
proc_macro_deps = depset(proc_macro_deps),
484+
deps = deps,
485+
proc_macro_deps = proc_macro_deps,
486486
aliases = ctx.attr.aliases,
487487
output = output,
488488
rustc_output = generate_output_diagnostics(ctx, output),

rust/private/rustc.bzl

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ def collect_deps(
252252
transitive_metadata_outputs = []
253253

254254
crate_deps = []
255-
for dep in depset(transitive = [deps, proc_macro_deps]).to_list():
255+
for dep in deps + proc_macro_deps:
256256
crate_group = None
257257

258258
if type(dep) == "Target" and rust_common.crate_group_info in dep:
@@ -1222,7 +1222,13 @@ def rustc_compile_action(
12221222
- (DepInfo): The transitive dependencies of this crate.
12231223
- (DefaultInfo): The output file for this crate, and its runfiles.
12241224
"""
1225-
crate_info = rust_common.create_crate_info(**crate_info_dict)
1225+
deps = crate_info_dict.pop("deps")
1226+
proc_macro_deps = crate_info_dict.pop("proc_macro_deps")
1227+
crate_info = rust_common.create_crate_info(
1228+
deps = depset(deps),
1229+
proc_macro_deps = depset(proc_macro_deps),
1230+
**crate_info_dict
1231+
)
12261232

12271233
build_metadata = crate_info_dict.get("metadata", None)
12281234
rustc_output = crate_info_dict.get("rustc_output", None)
@@ -1242,8 +1248,8 @@ def rustc_compile_action(
12421248
experimental_use_cc_common_link = toolchain._experimental_use_cc_common_link
12431249

12441250
dep_info, build_info, linkstamps = collect_deps(
1245-
deps = crate_info_dict["deps"],
1246-
proc_macro_deps = crate_info_dict["proc_macro_deps"],
1251+
deps = deps,
1252+
proc_macro_deps = proc_macro_deps,
12471253
aliases = crate_info_dict["aliases"],
12481254
)
12491255
extra_disabled_features = [RUST_LINK_CC_FEATURE]
@@ -1615,7 +1621,11 @@ def rustc_compile_action(
16151621
crate_info_dict.update({
16161622
"rustc_env": env,
16171623
})
1618-
crate_info = rust_common.create_crate_info(**crate_info_dict)
1624+
crate_info = rust_common.create_crate_info(
1625+
deps = depset(deps),
1626+
proc_macro_deps = depset(proc_macro_deps),
1627+
**crate_info_dict
1628+
)
16191629

16201630
if crate_info.type in ["staticlib", "cdylib"]:
16211631
# These rules are not supposed to be depended on by other rust targets, and

rust/private/rustdoc.bzl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,8 +98,8 @@ def rustdoc_compile_action(
9898
cc_toolchain, feature_configuration = find_cc_toolchain(ctx)
9999

100100
dep_info, build_info, _ = collect_deps(
101-
deps = crate_info.deps,
102-
proc_macro_deps = crate_info.proc_macro_deps,
101+
deps = crate_info.deps.to_list(),
102+
proc_macro_deps = crate_info.proc_macro_deps.to_list(),
103103
aliases = crate_info.aliases,
104104
)
105105

rust/private/unpretty.bzl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,8 @@ def _rust_unpretty_aspect_impl(target, ctx):
141141
cc_toolchain, feature_configuration = find_cc_toolchain(ctx)
142142

143143
dep_info, build_info, _ = collect_deps(
144-
deps = crate_info.deps,
145-
proc_macro_deps = crate_info.proc_macro_deps,
144+
deps = crate_info.deps.to_list(),
145+
proc_macro_deps = crate_info.proc_macro_deps.to_list(),
146146
aliases = crate_info.aliases,
147147
)
148148
lint_files = []

test/unit/consistent_crate_name/with_modified_crate_name.bzl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@ def _with_modified_crate_name_impl(ctx):
4040
type = crate_type,
4141
root = crate_root,
4242
srcs = ctx.attr.src.files,
43-
deps = depset(deps),
44-
proc_macro_deps = depset([]),
43+
deps = deps,
44+
proc_macro_deps = [],
4545
aliases = {},
4646
output = rust_lib,
4747
owner = ctx.label,

test/unit/force_all_deps_direct/generator.bzl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,8 @@ def _generator_impl(ctx):
5656
type = crate_type,
5757
root = rs_file,
5858
srcs = depset([rs_file]),
59-
deps = depset(deps),
60-
proc_macro_deps = depset([]),
59+
deps = deps,
60+
proc_macro_deps = [],
6161
aliases = {},
6262
output = rust_lib,
6363
owner = ctx.label,

0 commit comments

Comments
 (0)