@@ -6,7 +6,7 @@ load("@rules_proto//proto:proto_common.bzl", proto_toolchains = "toolchains")
66load ("@rules_rust//rust:defs.bzl" , "rust_analyzer_aspect" , "rust_common" )
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" )
@@ -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 ,
0 commit comments