diff --git a/proto/prost/private/prost.bzl b/proto/prost/private/prost.bzl index b513b154ed..1db20021a6 100644 --- a/proto/prost/private/prost.bzl +++ b/proto/prost/private/prost.bzl @@ -160,7 +160,7 @@ def _compile_rust(ctx, attr, crate_name, src, deps, edition): ctx = ctx, attr = attr, toolchain = toolchain, - crate_info = rust_common.create_crate_info( + crate_info_dict = dict( name = crate_name, type = "rlib", root = src, diff --git a/proto/protobuf/proto.bzl b/proto/protobuf/proto.bzl index 2fcc1db50a..401a9e5038 100644 --- a/proto/protobuf/proto.bzl +++ b/proto/protobuf/proto.bzl @@ -214,7 +214,7 @@ def _rust_proto_compile(protos, descriptor_sets, imports, crate_name, ctx, is_gr ctx = ctx, attr = ctx.attr, toolchain = toolchain, - crate_info = rust_common.create_crate_info( + crate_info_dict = dict( name = crate_name, type = "rlib", root = lib_rs, diff --git a/rust/private/rustc.bzl b/rust/private/rustc.bzl index e45b2749b8..29b47efe90 100644 --- a/rust/private/rustc.bzl +++ b/rust/private/rustc.bzl @@ -1092,6 +1092,7 @@ def rustc_compile_action( force_all_deps_direct = False, rust_metadata = None, output_file = None, + crate_info_dict = None, skip_expanding_rustc_env = False): """Create and run a rustc compile action based on the current rule's attributes @@ -1117,20 +1118,21 @@ def rustc_compile_action( # TODO: Remove create_crate_info_callback after all rustc_compile_action callers migrate to # removing CrateInfo construction before `rust_compile_action - crate_info_dict = None - if crate_info == None: - if ctx == None or toolchain == None or crate_type == None: - fail("FAIL", ctx, toolchain, crate_type) - crate_info_dict = create_crate_info_dict( - ctx = ctx, - toolchain = toolchain, - crate_type = crate_type, - rust_metadata = rust_metadata, - output_file = output_file, - ) + # if crate_info == None: + # print(crate_info_dict) - if crate_info_dict != None: - crate_info = rust_common.create_crate_info(**crate_info_dict) + if crate_info == None: + if crate_info_dict: + crate_info = rust_common.create_crate_info(**crate_info_dict) + else: + crate_info_dict = create_crate_info_dict( + ctx = ctx, + toolchain = toolchain, + crate_type = crate_type, + rust_metadata = rust_metadata, + output_file = output_file, + ) + crate_info = rust_common.create_crate_info(**crate_info_dict) build_metadata = getattr(crate_info, "metadata", None) diff --git a/rust/private/utils.bzl b/rust/private/utils.bzl index f9358b5c87..5a6cb456ce 100644 --- a/rust/private/utils.bzl +++ b/rust/private/utils.bzl @@ -850,7 +850,7 @@ def _symlink_for_non_generated_source(ctx, src_file, package_root): else: return src_file -def create_crate_info_dict(ctx, toolchain, crate_type, rust_metadata, output_file): +def create_crate_info_dict(ctx, toolchain, crate_type, rust_metadata, output_file, crate_info_dict = None): """Creates a mutable dict() representing CrateInfo provider create_crate_info_dict is a *temporary* solution until create_crate_info is completely moved into diff --git a/test/unit/consistent_crate_name/with_modified_crate_name.bzl b/test/unit/consistent_crate_name/with_modified_crate_name.bzl index 335ec12865..3100cd1850 100644 --- a/test/unit/consistent_crate_name/with_modified_crate_name.bzl +++ b/test/unit/consistent_crate_name/with_modified_crate_name.bzl @@ -35,7 +35,7 @@ def _with_modified_crate_name_impl(ctx): ctx = ctx, attr = ctx.attr, toolchain = toolchain, - crate_info = rust_common.create_crate_info( + crate_info_dict = dict( name = crate_name, type = crate_type, root = crate_root, diff --git a/test/unit/force_all_deps_direct/generator.bzl b/test/unit/force_all_deps_direct/generator.bzl index f56d09c2c8..484ed09729 100644 --- a/test/unit/force_all_deps_direct/generator.bzl +++ b/test/unit/force_all_deps_direct/generator.bzl @@ -52,7 +52,7 @@ EOF ctx = ctx, attr = ctx.attr, toolchain = toolchain, - crate_info = rust_common.create_crate_info( + crate_info_dict = dict( name = crate_name, type = crate_type, root = rs_file, diff --git a/test/unit/pipelined_compilation/wrap.bzl b/test/unit/pipelined_compilation/wrap.bzl index b00f761a9a..f987485006 100644 --- a/test/unit/pipelined_compilation/wrap.bzl +++ b/test/unit/pipelined_compilation/wrap.bzl @@ -61,7 +61,7 @@ EOF ctx = ctx, attr = ctx.attr, toolchain = toolchain, - crate_info = rust_common.create_crate_info( + crate_info_dict = dict( name = crate_name, type = crate_type, root = rs_file,