Move some IO-focused classes that don't have deps on other parts of Bazel to the new lib/io package.
Also, couldn't resist some clean-ups on Abstract(File)ChainUniquenessFunction: was only used for RootedPath, so specialized to that, and streamlined the uniquifier a bit, hopefully without any bugs that our test battery won't catch.
I did debate truly uniquifying the cycle by breaking ties based on the next element, but managed to back away.
PiperOrigin-RevId: 363756543
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/BUILD b/src/test/java/com/google/devtools/build/lib/skyframe/BUILD
index 8667c03..2c858f9 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/BUILD
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/BUILD
@@ -196,10 +196,10 @@
"//src/main/java/com/google/devtools/build/lib/skyframe:directory_listing_function",
"//src/main/java/com/google/devtools/build/lib/skyframe:directory_listing_state_value",
"//src/main/java/com/google/devtools/build/lib/skyframe:file_function",
- "//src/main/java/com/google/devtools/build/lib/skyframe:file_symlink_cycle_exception",
- "//src/main/java/com/google/devtools/build/lib/skyframe:file_symlink_cycle_uniqueness_function",
- "//src/main/java/com/google/devtools/build/lib/skyframe:file_symlink_infinite_expansion_exception",
- "//src/main/java/com/google/devtools/build/lib/skyframe:file_symlink_infinite_expansion_uniqueness_function",
+ "//src/main/java/com/google/devtools/build/lib/io:file_symlink_cycle_exception",
+ "//src/main/java/com/google/devtools/build/lib/io:file_symlink_cycle_uniqueness_function",
+ "//src/main/java/com/google/devtools/build/lib/io:file_symlink_infinite_expansion_exception",
+ "//src/main/java/com/google/devtools/build/lib/io:file_symlink_infinite_expansion_uniqueness_function",
"//src/main/java/com/google/devtools/build/lib/skyframe:fileset_entry_function",
"//src/main/java/com/google/devtools/build/lib/skyframe:fileset_entry_key",
"//src/main/java/com/google/devtools/build/lib/skyframe:fileset_entry_value",