Skip to content

Commit 9514b7d

Browse files
committed
Allow -> as placeholder separator
1 parent e2a0902 commit 9514b7d

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

mug-errorprone/src/main/java/com/google/mu/errorprone/FormatStringUtils.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,15 +33,17 @@
3333
final class FormatStringUtils {
3434
static final Substring.Pattern PLACEHOLDER_PATTERN =
3535
consecutive(CharMatcher.noneOf("{}")::matches).immediatelyBetween("{", INCLUSIVE, "}", INCLUSIVE);
36+
static final Substring.Pattern PLACEHOLDER_SEPARATOR =
37+
Stream.of("=", "->").map(Substring::first).collect(firstOccurrence());
3638
static final Substring.RepeatingPattern PLACEHOLDER_NAMES_PATTERN =
3739
consecutive(CharMatcher.noneOf("{}")::matches).immediatelyBetween("{", "}").repeatedly();
3840

3941
static ImmutableList<String> placeholderVariableNames(String formatString) {
40-
Substring.Pattern beforeEqualSign = Substring.before(first('='));
42+
Substring.Pattern beforeSeparator = Substring.before(PLACEHOLDER_SEPARATOR);
4143
return PLACEHOLDER_NAMES_PATTERN
4244
.from(formatString)
4345
// for Cloud resource name syntax
44-
.map(n -> beforeEqualSign.from(n).map(whitespace()::trimTrailingFrom).orElse(n))
46+
.map(n -> beforeSeparator.from(n).map(whitespace()::trimTrailingFrom).orElse(n))
4547
.collect(toImmutableList());
4648
}
4749

mug-errorprone/src/test/java/com/google/mu/errorprone/StringFormatPlaceholderNamesCheckTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,19 @@ public void trailingSpacesBeforeEqualSignIgnored() {
244244
.doTest();
245245
}
246246

247+
@Test
248+
public void trailingSpacesBeforeArrowIgnored() {
249+
helper
250+
.addSourceLines(
251+
"Test.java",
252+
"import com.google.mu.util.StringFormat;",
253+
"class Test {",
254+
" private static final StringFormat FORMAT =",
255+
" new StringFormat(\"{shows_id -> id,}\");",
256+
"}")
257+
.doTest();
258+
}
259+
247260
@Ignore
248261
@Test
249262
public void squareBracketedPlaceholdersChecked() {

0 commit comments

Comments
 (0)