Fix simple bazel build_rules cases of rules returning struct
This is a migration step toward #7347 , so that Starlark rule implementation functions no longer return struct.
Not all usages are migrated: cases where a struct is returned with a "custom" field name requires more migration care.
See #7347 for details.
RELNOTES: None.
PiperOrigin-RevId: 241986202
diff --git a/tools/build_rules/java_rules_skylark.bzl b/tools/build_rules/java_rules_skylark.bzl
index d384175..f99449f 100644
--- a/tools/build_rules/java_rules_skylark.bzl
+++ b/tools/build_rules/java_rules_skylark.bzl
@@ -84,10 +84,12 @@
runfiles = ctx.runfiles(collect_data = True)
return struct(
- files = depset([class_jar]),
compile_time_jars = compile_time_jars + [class_jar],
runtime_jars = runtime_jars + [class_jar],
- runfiles = runfiles,
+ providers = [DefaultInfo(
+ files = depset([class_jar]),
+ runfiles = runfiles,
+ )],
)
def java_binary_impl(ctx):
@@ -168,9 +170,9 @@
runfiles = ctx.runfiles(files = [deploy_jar, executable] + ctx.files._jdk, collect_data = True)
files_to_build = depset([deploy_jar, manifest, executable])
- files_to_build += library_result.files
+ files_to_build += library_result.providers[0].files
- return struct(files = files_to_build, runfiles = runfiles)
+ return [DefaultInfo(files = files_to_build, runfiles = runfiles)]
def java_import_impl(ctx):
# TODO(bazel-team): Why do we need to filter here? The attribute
@@ -179,10 +181,9 @@
neverlink_jars = depset(ctx.files.neverlink_jars)
runfiles = ctx.runfiles(collect_data = True)
return struct(
- files = jars,
compile_time_jars = jars + neverlink_jars,
runtime_jars = jars,
- runfiles = runfiles,
+ providers = [DefaultInfo(files = jars, runfiles = runfiles)],
)
java_library_attrs = {
diff --git a/tools/build_rules/test_rules.bzl b/tools/build_rules/test_rules.bzl
index 791bb67..57526f9 100644
--- a/tools/build_rules/test_rules.bzl
+++ b/tools/build_rules/test_rules.bzl
@@ -41,7 +41,7 @@
content = "cat " + dat.path + " ; echo",
is_executable = True,
)
- return struct(runfiles = ctx.runfiles([exe, dat]))
+ return [DefaultInfo(runfiles = ctx.runfiles([exe, dat]))]
def _successful_test_impl(ctx):
return success_target(ctx, ctx.attr.msg)
@@ -79,7 +79,7 @@
content = "(cat " + dat.short_path + " ; echo ) >&2 ; exit 1",
is_executable = True,
)
- return struct(runfiles = ctx.runfiles([exe, dat]))
+ return [DefaultInfo(runfiles = ctx.runfiles([exe, dat]))]
def _failed_test_impl(ctx):
return failure_target(ctx, ctx.attr.msg)
@@ -250,7 +250,7 @@
ctx.actions.write(output = file_, content = v)
script = "\n".join(commands + ["true"])
ctx.actions.write(output = exe, content = script, is_executable = True)
- return struct(runfiles = ctx.runfiles([exe] + files))
+ return [DefaultInfo(runfiles = ctx.runfiles([exe] + files))]
else:
return success_target(ctx, "success")
@@ -287,7 +287,7 @@
content = "diff -u %s %s" % (dat.short_path, file_.short_path),
is_executable = True,
)
- return struct(runfiles = ctx.runfiles([exe, dat, file_]))
+ return [DefaultInfo(runfiles = ctx.runfiles([exe, dat, file_]))]
if matches != -1:
script = "[ %s == $(grep -c %s %s) ]" % (
matches,
@@ -301,7 +301,7 @@
content = script,
is_executable = True,
)
- return struct(runfiles = ctx.runfiles([exe, file_]))
+ return [DefaultInfo(runfiles = ctx.runfiles([exe, file_]))]
file_test = rule(
attrs = {