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):