Skip to content

Commit

Permalink
Suggestions
Browse files Browse the repository at this point in the history
  • Loading branch information
Stephan202 authored and rickie committed Feb 11, 2024
1 parent 1c75f45 commit f5b3697
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -163,13 +163,14 @@ String after(Object object) {
}

/**
* Prefer direct invocation of {@link String#copyValueOf(char[])} over the indirection introduced
* by {@link String#copyValueOf(char[])}.
* Prefer direct invocation of {@link String#String(char[], int, int)} over the indirection
* introduced by alternatives.
*/
static final class StringCopyValueOf {
static final class NewStringFromCharArraySubSequence {
@BeforeTemplate
String before(char[] data, int offset, int count) {
return String.copyValueOf(data, offset, count);
return Refaster.anyOf(
String.valueOf(data, offset, count), String.copyValueOf(data, offset, count));
}

@AfterTemplate
Expand All @@ -178,6 +179,22 @@ String after(char[] data, int offset, int count) {
}
}

/**
* Prefer direct invocation of {@link String#String(char[])} over the indirection introduced by
* alternatives.
*/
static final class NewStringFromCharArray {
@BeforeTemplate
String before(char[] data) {
return Refaster.anyOf(String.valueOf(data), new String(data, 0, data.length));
}

@AfterTemplate
String after(char[] data) {
return new String(data);
}
}

/**
* Prefer direct delegation to {@link String#valueOf(Object)} over the indirection introduced by
* {@link Objects#toString(Object)}.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,18 @@ String testStringValueOf() {
return Objects.toString("foo");
}

ImmutableSet<String> testNewStringFromCharArraySubSequence() {
return ImmutableSet.of(
String.valueOf(new char[] {'f', 'o', 'o'}, 0, 1),
String.copyValueOf(new char[] {'b', 'a', 'r'}, 2, 3));
}

ImmutableSet<String> testNewStringFromCharArray() {
return ImmutableSet.of(
String.valueOf(new char[] {'f', 'o', 'o'}),
new String(new char[] {'b', 'a', 'r'}, 0, new char[] {'b', 'a', 'r'}.length));
}

Function<Object, String> testStringValueOfMethodReference() {
return Objects::toString;
}
Expand All @@ -84,8 +96,4 @@ String testSubstringRemainder() {
int testUtf8EncodedLength() {
return "foo".getBytes(UTF_8).length;
}

String testStringCopyValueOf() {
return String.copyValueOf(new char[] {'f', 'o', 'o'}, 0, 3);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,16 @@ String testStringValueOf() {
return String.valueOf("foo");
}

ImmutableSet<String> testNewStringFromCharArraySubSequence() {
return ImmutableSet.of(
new String(new char[] {'f', 'o', 'o'}, 0, 1), new String(new char[] {'b', 'a', 'r'}, 2, 3));
}

ImmutableSet<String> testNewStringFromCharArray() {
return ImmutableSet.of(
new String(new char[] {'f', 'o', 'o'}), new String(new char[] {'b', 'a', 'r'}));
}

Function<Object, String> testStringValueOfMethodReference() {
return String::valueOf;
}
Expand All @@ -86,8 +96,4 @@ String testSubstringRemainder() {
int testUtf8EncodedLength() {
return Utf8.encodedLength("foo");
}

String testStringCopyValueOf() {
return new String(new char[] {'f', 'o', 'o'}, 0, 3);
}
}

0 comments on commit f5b3697

Please sign in to comment.