Rename `PathFragment#getSegments` to `splitToListOfSegments` and perform another pass to migrate unnecessary callers.
The renaming makes it clearer that it is not a simple getter method, but rather one that requires string operations that can be costly in aggregate.
There is an overload of `ArtifactRoot#asDerivedRoot` where callers seem to unnecessarily split up a path fragment only for it to reconstruct one and call the other overload. Those calls are fixed to use the more efficient overload.
Switched some test calls to `segments()` where the assertion is equivalent. Hopefully this will encourage that method to be preferred.
PiperOrigin-RevId: 359761371
diff --git a/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java b/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java
index 6f8967c..ccc1c09 100644
--- a/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java
+++ b/src/test/java/com/google/devtools/build/lib/vfs/PathFragmentTest.java
@@ -552,14 +552,14 @@
assertThat(create("/a/b").segmentCount()).isEqualTo(2);
assertThat(create("/a/b/c").segmentCount()).isEqualTo(3);
- assertThat(create("").getSegments()).isEmpty();
- assertThat(create("a").getSegments()).containsExactly("a").inOrder();
- assertThat(create("a/b").getSegments()).containsExactly("a", "b").inOrder();
- assertThat(create("a/b/c").getSegments()).containsExactly("a", "b", "c").inOrder();
- assertThat(create("/").getSegments()).isEmpty();
- assertThat(create("/a").getSegments()).containsExactly("a").inOrder();
- assertThat(create("/a/b").getSegments()).containsExactly("a", "b").inOrder();
- assertThat(create("/a/b/c").getSegments()).containsExactly("a", "b", "c").inOrder();
+ assertThat(create("").splitToListOfSegments()).isEmpty();
+ assertThat(create("a").splitToListOfSegments()).containsExactly("a").inOrder();
+ assertThat(create("a/b").splitToListOfSegments()).containsExactly("a", "b").inOrder();
+ assertThat(create("a/b/c").splitToListOfSegments()).containsExactly("a", "b", "c").inOrder();
+ assertThat(create("/").splitToListOfSegments()).isEmpty();
+ assertThat(create("/a").splitToListOfSegments()).containsExactly("a").inOrder();
+ assertThat(create("/a/b").splitToListOfSegments()).containsExactly("a", "b").inOrder();
+ assertThat(create("/a/b/c").splitToListOfSegments()).containsExactly("a", "b", "c").inOrder();
assertThat(create("a").getSegment(0)).isEqualTo("a");
assertThat(create("a/b").getSegment(0)).isEqualTo("a");