Skip to content

Commit 821d50c

Browse files
committed
Make RefactorSwitch an error
The switch statements in DimensionHelpers.extractDims, CommandLineOptionsParser's two range parsers and SnippetFormatter's snippetWrapper returned from every case. Each is now the switch expression it returns, with yield where a case has statements before its value.
1 parent a16cf32 commit 821d50c

4 files changed

Lines changed: 21 additions & 24 deletions

File tree

‎buildSrc/src/main/groovy/open-java-format.error-prone-conventions.gradle‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ tasks.withType(JavaCompile).configureEach {
5555
// Checks whose findings have been fixed, build-breaking so that new ones are fixed too rather than read past.
5656
tasks.withType(JavaCompile).configureEach {
5757
options.errorprone {
58+
error('RefactorSwitch')
5859
error('SameNameButDifferent')
5960
error('UnusedVariable')
6061
}

‎open-java-format-eclipse-plugin/src/main/java/com/palantir/javaformat/java/SnippetFormatter.java‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -159,15 +159,15 @@ private SnippetWrapper snippetWrapper(SnippetKind kind, String source, int initi
159159
* dummy class is correctly formatted -- the blocks use correct indentation,
160160
* etc.
161161
*/
162-
switch (kind) {
162+
return switch (kind) {
163163
case COMPILATION_UNIT -> {
164164
SnippetWrapper wrapper = new SnippetWrapper();
165165
for (int i = 1; i <= initialIndent; i++) {
166166
wrapper.append("class Dummy {\n").append(createIndentationString(i));
167167
}
168168
wrapper.appendSource(source);
169169
wrapper.closeBraces(initialIndent);
170-
return wrapper;
170+
yield wrapper;
171171
}
172172
case CLASS_BODY_DECLARATIONS -> {
173173
SnippetWrapper wrapper = new SnippetWrapper();
@@ -176,7 +176,7 @@ private SnippetWrapper snippetWrapper(SnippetKind kind, String source, int initi
176176
}
177177
wrapper.appendSource(source);
178178
wrapper.closeBraces(initialIndent);
179-
return wrapper;
179+
yield wrapper;
180180
}
181181
case STATEMENTS -> {
182182
SnippetWrapper wrapper = new SnippetWrapper();
@@ -186,7 +186,7 @@ private SnippetWrapper snippetWrapper(SnippetKind kind, String source, int initi
186186
}
187187
wrapper.appendSource(source);
188188
wrapper.closeBraces(initialIndent);
189-
return wrapper;
189+
yield wrapper;
190190
}
191191
case EXPRESSION -> {
192192
SnippetWrapper wrapper = new SnippetWrapper();
@@ -198,9 +198,9 @@ private SnippetWrapper snippetWrapper(SnippetKind kind, String source, int initi
198198
wrapper.appendSource(source);
199199
wrapper.append(";");
200200
wrapper.closeBraces(initialIndent);
201-
return wrapper;
201+
yield wrapper;
202202
}
203203
default -> throw new IllegalArgumentException("Unknown snippet kind: " + kind);
204-
}
204+
};
205205
}
206206
}

‎open-java-format/src/main/java/com/palantir/javaformat/java/CommandLineOptionsParser.java‎

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -141,18 +141,18 @@ private static void parseCharacterRanges(ImmutableRangeSet.Builder<Integer> resu
141141
*/
142142
private static Range<Integer> parseCharacterRange(String range) {
143143
List<String> args = COLON_SPLITTER.splitToList(range);
144-
switch (args.size()) {
144+
return switch (args.size()) {
145145
case 1 -> {
146146
int lowerUpperRange = Integer.parseInt(args.get(0));
147-
return Range.closed(lowerUpperRange, lowerUpperRange);
147+
yield Range.closed(lowerUpperRange, lowerUpperRange);
148148
}
149149
case 2 -> {
150150
int lower = Integer.parseInt(args.get(0));
151151
int higher = Integer.parseInt(args.get(1));
152-
return Range.closed(lower, higher);
152+
yield Range.closed(lower, higher);
153153
}
154154
default -> throw new IllegalArgumentException(range);
155-
}
155+
};
156156
}
157157

158158
/**
@@ -172,18 +172,18 @@ private static void parseRangeSet(RangeSet<Integer> result, String ranges) {
172172
*/
173173
private static Range<Integer> parseRange(String arg) {
174174
List<String> args = COLON_SPLITTER.splitToList(arg);
175-
switch (args.size()) {
175+
return switch (args.size()) {
176176
case 1 -> {
177177
int line = Integer.parseInt(args.get(0)) - 1;
178-
return Range.closedOpen(line, line + 1);
178+
yield Range.closedOpen(line, line + 1);
179179
}
180180
case 2 -> {
181181
int line0 = Integer.parseInt(args.get(0)) - 1;
182182
int line1 = Integer.parseInt(args.get(1)) - 1;
183-
return Range.closedOpen(line0, line1 + 1);
183+
yield Range.closedOpen(line0, line1 + 1);
184184
}
185185
default -> throw new IllegalArgumentException(arg);
186-
}
186+
};
187187
}
188188

189189
/**

‎open-java-format/src/main/java/com/palantir/javaformat/java/DimensionHelpers.java‎

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -102,22 +102,18 @@ private static Iterable<List<AnnotationTree>> reorderBySourcePosition(Deque<List
102102
* <p>Given {@code int @A @B [][] @C []}, adds {@code [[@A, @B], [@C]]} to dims and returns {@code int}.
103103
*/
104104
private static Tree extractDims(Deque<List<AnnotationTree>> dims, Tree node) {
105-
switch (node.getKind()) {
106-
case ARRAY_TYPE -> {
107-
return extractDims(dims, ((ArrayTypeTree) node).getType());
108-
}
105+
return switch (node.getKind()) {
106+
case ARRAY_TYPE -> extractDims(dims, ((ArrayTypeTree) node).getType());
109107
case ANNOTATED_TYPE -> {
110108
AnnotatedTypeTree annotatedTypeTree = (AnnotatedTypeTree) node;
111109
if (!(annotatedTypeTree.getUnderlyingType() instanceof ArrayTypeTree)) {
112-
return node;
110+
yield node;
113111
}
114112
node = extractDims(dims, annotatedTypeTree.getUnderlyingType());
115113
dims.addFirst(ImmutableList.copyOf(annotatedTypeTree.getAnnotations()));
116-
return node;
117-
}
118-
default -> {
119-
return node;
114+
yield node;
120115
}
121-
}
116+
default -> node;
117+
};
122118
}
123119
}

0 commit comments

Comments
 (0)