33load ("@rules_cc//cc/common:cc_info.bzl" , "CcInfo" )
44load ("@rules_proto//proto:defs.bzl" , "ProtoInfo" , "proto_common" )
55load ("@rules_proto//proto:proto_common.bzl" , proto_toolchains = "toolchains" )
6- load ("@rules_rust//rust:defs.bzl" , "rust_analyzer_aspect" , "rust_common" )
6+ load ("@rules_rust//rust:defs.bzl" , "rust_analyzer_aspect" )
77
88# buildifier: disable=bzl-visibility
9- load ("@rules_rust//rust/private:providers.bzl" , "RustAnalyzerGroupInfo" , "RustAnalyzerInfo" )
9+ load ("@rules_rust//rust/private:providers.bzl" , "CrateGroupInfo" , "CrateInfo" , "DepInfo" , "DepVariantInfo" , " RustAnalyzerGroupInfo" , "RustAnalyzerInfo" )
1010
1111# buildifier: disable=bzl-visibility
1212load ("@rules_rust//rust/private:rust.bzl" , "RUSTC_ATTRS" )
@@ -230,7 +230,7 @@ def _compile_rust(
230230 dep_info = _get_dep_info (providers )
231231 cc_info = _get_cc_info (providers )
232232
233- return rust_common . dep_variant_info (
233+ return DepVariantInfo (
234234 crate_info = crate_info ,
235235 dep_info = dep_info ,
236236 cc_info = cc_info ,
@@ -252,13 +252,13 @@ def _rust_prost_aspect_impl(target, ctx):
252252 for prost_runtime in runtimes :
253253 if not prost_runtime :
254254 continue
255- if rust_common . crate_group_info in prost_runtime :
256- crate_group_info = prost_runtime [rust_common . crate_group_info ]
257- runtime_deps .extend (crate_group_info .dep_variant_infos . to_list () )
255+ if CrateGroupInfo in prost_runtime :
256+ crate_group_info = prost_runtime [CrateGroupInfo ]
257+ runtime_deps .extend (crate_group_info .dep_variant_infos )
258258 else :
259- runtime_deps .append (rust_common . dep_variant_info (
260- crate_info = prost_runtime [rust_common . crate_info ] if rust_common . crate_info in prost_runtime else None ,
261- dep_info = prost_runtime [rust_common . dep_info ] if rust_common . dep_info in prost_runtime else None ,
259+ runtime_deps .append (DepVariantInfo (
260+ crate_info = prost_runtime [CrateInfo ] if CrateInfo in prost_runtime else None ,
261+ dep_info = prost_runtime [DepInfo ] if DepInfo in prost_runtime else None ,
262262 cc_info = prost_runtime [CcInfo ] if CcInfo in prost_runtime else None ,
263263 build_info = None ,
264264 ))
@@ -269,26 +269,24 @@ def _rust_prost_aspect_impl(target, ctx):
269269
270270 proto_deps = getattr (ctx .rule .attr , "deps" , [])
271271
272- direct_deps = []
273- transitive_deps = [depset ( runtime_deps ) ]
272+ direct_deps = list ( runtime_deps )
273+ transitive_deps = []
274274 for proto_dep in proto_deps :
275275 proto_info = proto_dep [ProstProtoInfo ]
276276
277277 direct_deps .append (proto_info .dep_variant_info )
278- transitive_deps .append (depset (
279- [proto_info .dep_variant_info ],
280- transitive = [proto_info .transitive_dep_infos ],
281- ))
278+ transitive_deps .append (proto_info .transitive_dep_infos )
282279
283280 if RustAnalyzerInfo in proto_dep :
284281 rust_analyzer_deps .append (proto_dep [RustAnalyzerInfo ])
285282
286- transform_infos = []
287- for data_target in getattr (ctx .rule .attr , "data" , []):
288- if ProstTransformInfo in data_target :
289- transform_infos .append (data_target [ProstTransformInfo ])
283+ transform_infos = [
284+ data_target [ProstTransformInfo ]
285+ for data_target in getattr (ctx .rule .attr , "data" , [])
286+ if ProstTransformInfo in data_target
287+ ]
290288
291- rust_deps = runtime_deps + direct_deps
289+ rust_deps = list ( direct_deps )
292290 crate_name_overrides = []
293291 for transform_info in transform_infos :
294292 rust_deps .extend (transform_info .deps )
@@ -352,7 +350,7 @@ def _rust_prost_aspect_impl(target, ctx):
352350 return [
353351 ProstProtoInfo (
354352 dep_variant_info = dep_variant_info ,
355- transitive_dep_infos = depset (transitive = transitive_deps ),
353+ transitive_dep_infos = depset (direct_deps , transitive = transitive_deps ),
356354 package_info = package_info_file ,
357355 ),
358356 rust_analyzer_info ,
@@ -408,18 +406,14 @@ def _rust_prost_library_impl(ctx):
408406
409407 prost_toolchain = ctx .toolchains [TOOLCHAIN_TYPE ]
410408
411- transitive = []
409+ dep_variant_infos = [dep_variant_info ]
410+
412411 if prost_toolchain .include_transitive_deps :
413- transitive = [rust_proto_info .transitive_dep_infos ]
412+ dep_variant_infos = depset ( dep_variant_infos , transitive = [rust_proto_info .transitive_dep_infos ]). to_list ()
414413
415414 return [
416415 DefaultInfo (files = depset ([dep_variant_info .crate_info .output ])),
417- rust_common .crate_group_info (
418- dep_variant_infos = depset (
419- [dep_variant_info ],
420- transitive = transitive ,
421- ),
422- ),
416+ CrateGroupInfo (dep_variant_infos = dep_variant_infos ),
423417 OutputGroupInfo (
424418 rust_generated_srcs = rust_generated_srcs ,
425419 proto_descriptor_set = proto_descriptor_set ,
@@ -444,7 +438,7 @@ rust_prost_library = rule(
444438 ),
445439 },
446440 provides = [
447- rust_common . crate_group_info ,
441+ CrateGroupInfo ,
448442 ],
449443 toolchains = [
450444 TOOLCHAIN_TYPE ,
@@ -513,13 +507,13 @@ rust_prost_toolchain = rule(
513507 ),
514508 "prost_runtime" : attr .label (
515509 doc = "The Prost runtime crates to use." ,
516- providers = [[rust_common . crate_info ], [rust_common . crate_group_info ]],
510+ providers = [[CrateInfo ], [CrateGroupInfo ]],
517511 mandatory = True ,
518512 aspects = [rust_analyzer_aspect ],
519513 ),
520514 "prost_types" : attr .label (
521515 doc = "The Prost types crates to use." ,
522- providers = [[rust_common . crate_info ], [rust_common . crate_group_info ]],
516+ providers = [[CrateInfo ], [CrateGroupInfo ]],
523517 mandatory = True ,
524518 ),
525519 "proto_compiler" : attr .label (
@@ -541,7 +535,7 @@ rust_prost_toolchain = rule(
541535 ),
542536 "tonic_runtime" : attr .label (
543537 doc = "The Tonic runtime crates to use." ,
544- providers = [[rust_common . crate_info ], [rust_common . crate_group_info ]],
538+ providers = [[CrateInfo ], [CrateGroupInfo ]],
545539 aspects = [rust_analyzer_aspect ],
546540 ),
547541 }, ** proto_toolchains .if_legacy_toolchain ({
@@ -555,27 +549,24 @@ rust_prost_toolchain = rule(
555549def _current_prost_runtime_impl (ctx ):
556550 toolchain = ctx .toolchains [TOOLCHAIN_TYPE ]
557551
558- runtime_deps = []
552+ dep_variant_infos = []
559553
560554 for target in [toolchain .prost_runtime , toolchain .prost_types ]:
561- if rust_common .crate_group_info in target :
562- crate_group_info = target [rust_common .crate_group_info ]
563- runtime_deps .extend (crate_group_info .dep_variant_infos .to_list ())
555+ if CrateGroupInfo in target :
556+ dep_variant_infos .extend (target [CrateGroupInfo ].dep_variant_infos )
564557 else :
565- runtime_deps .append (rust_common . dep_variant_info (
566- crate_info = target [rust_common . crate_info ] if rust_common . crate_info in target else None ,
567- dep_info = target [rust_common . dep_info ] if rust_common . dep_info in target else None ,
558+ dep_variant_infos .append (DepVariantInfo (
559+ crate_info = target [CrateInfo ] if CrateInfo in target else None ,
560+ dep_info = target [DepInfo ] if DepInfo in target else None ,
568561 cc_info = target [CcInfo ] if CcInfo in target else None ,
569562 build_info = None ,
570563 ))
571564
572- return [rust_common .crate_group_info (
573- dep_variant_infos = depset (runtime_deps ),
574- )]
565+ return [CrateGroupInfo (dep_variant_infos = dep_variant_infos )]
575566
576567current_prost_runtime = rule (
577568 doc = "A rule for accessing the current Prost toolchain components needed by the process wrapper." ,
578- provides = [rust_common . crate_group_info ],
569+ provides = [CrateGroupInfo ],
579570 implementation = _current_prost_runtime_impl ,
580571 toolchains = [TOOLCHAIN_TYPE ],
581572)
0 commit comments