Closed
Description
Version 1.18.1 formatter throws an exception when trying to handle code like this:
return switch (obj1) {
case null -> obj2 == null;
case T1 myT1 when obj2 instanceof T1 otherT1 -> myT1.equalsStrict(otherT1);
// exception ^ at the when (69:46 in the original source)
case T2 myT2 when obj2 instanceof T2 otherT2 -> T2.isDeepEquals(myT2, otherT2);
default -> obj1.equals(obj2);
};
The exception is:
Step 'google-java-format' found problem in 'src/test/java/com/example/test/acceptance/ExpectedResult.java':
69:46: error: : or -> expected
com.google.googlejavaformat.java.FormatterException: 69:46: error: : or -> expected
at com.google.googlejavaformat.java.FormatterException.fromJavacDiagnostics(FormatterException.java:51)
at com.google.googlejavaformat.java.Formatter.format(Formatter.java:149)
at com.google.googlejavaformat.java.Formatter.getFormatReplacements(Formatter.java:273)
at com.google.googlejavaformat.java.Formatter.formatSource(Formatter.java:247)
at com.google.googlejavaformat.java.Formatter.formatSource(Formatter.java:213)
at com.diffplug.spotless.glue.java.GoogleJavaFormatFormatterFunc.apply(GoogleJavaFormatFormatterFunc.java:65)
at com.diffplug.spotless.FormatterFunc.apply(FormatterFunc.java:32)
at com.diffplug.spotless.FormatterStepImpl$Standard.format(FormatterStepImpl.java:82)
at com.diffplug.spotless.FormatterStep$Strict.format(FormatterStep.java:103)
at com.diffplug.spotless.Formatter.compute(Formatter.java:246)
at com.diffplug.spotless.PaddedCell.calculateDirtyState(PaddedCell.java:203)
at com.diffplug.spotless.PaddedCell.calculateDirtyState(PaddedCell.java:190)
at com.diffplug.gradle.spotless.SpotlessTaskImpl.processInputFile(SpotlessTaskImpl.java:105)
at com.diffplug.gradle.spotless.SpotlessTaskImpl.performAction(SpotlessTaskImpl.java:89)
<gradle stack trace elided>