Use DefaultInfo directly (#577)
Required for compatibility with https://github.com/bazelbuild/bazel/issues/20183
diff --git a/rules/private/bzl_library.bzl b/rules/private/bzl_library.bzl
index a139386..46d2f8e 100644
--- a/rules/private/bzl_library.bzl
+++ b/rules/private/bzl_library.bzl
@@ -24,7 +24,7 @@
)
def _bzl_library_impl(ctx):
- deps_files = [x.files for x in ctx.attr.deps]
+ deps_files = [x[DefaultInfo].files for x in ctx.attr.deps]
all_files = depset(ctx.files.srcs, order = "postorder", transitive = deps_files)
if not ctx.files.srcs and not deps_files:
fail("bzl_library rule '%s' has no srcs or deps" % ctx.label)
diff --git a/rules/select_file.bzl b/rules/select_file.bzl
index 1b73093..d370160 100644
--- a/rules/select_file.bzl
+++ b/rules/select_file.bzl
@@ -24,14 +24,14 @@
out = None
canonical = ctx.attr.subpath.replace("\\", "/")
- for file_ in ctx.attr.srcs.files.to_list():
+ for file_ in ctx.attr.srcs[DefaultInfo].files.to_list():
if file_.path.replace("\\", "/").endswith(canonical):
out = file_
break
if not out:
files_str = ",\n".join([
str(f.path)
- for f in ctx.attr.srcs.files.to_list()
+ for f in ctx.attr.srcs[DefaultInfo].files.to_list()
])
fail("Can not find specified file in [%s]" % files_str)
return [DefaultInfo(files = depset([out]))]
diff --git a/tests/directory/directory_test.bzl b/tests/directory/directory_test.bzl
index 5a6695a..af67154 100644
--- a/tests/directory/directory_test.bzl
+++ b/tests/directory/directory_test.bzl
@@ -32,10 +32,10 @@
)
def _source_root_test_impl(env, targets):
- f1 = targets.f1.files.to_list()[0]
- f2 = targets.f2.files.to_list()[0]
+ f1 = targets.f1[DefaultInfo].files.to_list()[0]
+ f2 = targets.f2[DefaultInfo].files.to_list()[0]
- env.expect.that_collection(targets.root.files.to_list()).contains_exactly(
+ env.expect.that_collection(targets.root[DefaultInfo].files.to_list()).contains_exactly(
[f1, f2],
)
@@ -73,9 +73,9 @@
)
def _generated_root_test_impl(env, targets):
- generated = targets.generated.files.to_list()[0]
+ generated = targets.generated[DefaultInfo].files.to_list()[0]
- env.expect.that_collection(targets.root.files.to_list()).contains_exactly(
+ env.expect.that_collection(targets.root[DefaultInfo].files.to_list()).contains_exactly(
[generated],
)
@@ -109,9 +109,9 @@
)
def _no_srcs_test_impl(env, targets):
- f1 = targets.f1.files.to_list()[0]
+ f1 = targets.f1[DefaultInfo].files.to_list()[0]
- env.expect.that_collection(targets.root.files.to_list()).contains_exactly([])
+ env.expect.that_collection(targets.root[DefaultInfo].files.to_list()).contains_exactly([])
d = directory_subject(env, targets.root[DirectoryInfo])
d.entries().contains_exactly({})
diff --git a/tests/directory/glob_test.bzl b/tests/directory/glob_test.bzl
index db6018e..caf7253 100644
--- a/tests/directory/glob_test.bzl
+++ b/tests/directory/glob_test.bzl
@@ -76,8 +76,8 @@
)
def _glob_test_impl(env, targets):
- f1 = targets.f1.files.to_list()[0]
- f2 = targets.f2.files.to_list()[0]
+ f1 = targets.f1[DefaultInfo].files.to_list()[0]
+ f2 = targets.f2[DefaultInfo].files.to_list()[0]
root = targets.root[DirectoryInfo]
testdata = root.entries["testdata"]
subdir = testdata.entries["subdir"]
diff --git a/tests/directory/subdirectory_test.bzl b/tests/directory/subdirectory_test.bzl
index 0546c39..deacaf4 100644
--- a/tests/directory/subdirectory_test.bzl
+++ b/tests/directory/subdirectory_test.bzl
@@ -55,8 +55,8 @@
)
def _subdirectory_test_impl(env, targets):
- f1 = targets.f1.files.to_list()[0]
- f2 = targets.f2.files.to_list()[0]
+ f1 = targets.f1[DefaultInfo].files.to_list()[0]
+ f2 = targets.f2[DefaultInfo].files.to_list()[0]
root = targets.root[DirectoryInfo]
want_dir = root.entries["testdata"]
@@ -67,10 +67,10 @@
env.expect.that_str(targets.subdir[DirectoryInfo]).equals(want_subdir)
env.expect.that_collection(
- targets.testdata.files.to_list(),
+ targets.testdata[DefaultInfo].files.to_list(),
).contains_exactly([f1, f2])
env.expect.that_collection(
- targets.subdir.files.to_list(),
+ targets.subdir[DefaultInfo].files.to_list(),
).contains_exactly([f2])
def _nonexistent_subdirectory_test(name):