Skip to content

Commit a794e25

Browse files
Add @CheckReturnValue annotations to tree packages (#6289)
* Add `javax.annotation.CheckReturnValue` to tree packages * Adjust usages for violations of check return value * Adjust usages of `unsafeSet` * Address final unused return values * Update rewrite-protobuf/src/main/java/org/openrewrite/protobuf/tree/package-info.java Co-authored-by: Knut Wannheden <[email protected]> * Add `CheckReturnValue` on hcl, javascript, kotlin and toml packages * Use `reduce` to immediately return response --------- Co-authored-by: Knut Wannheden <[email protected]>
1 parent c90245a commit a794e25

File tree

24 files changed

+93
-100
lines changed

24 files changed

+93
-100
lines changed

rewrite-core/src/main/java/org/openrewrite/tree/package-info.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16+
@CheckReturnValue
1617
@NullMarked
1718
package org.openrewrite.tree;
1819

1920
import org.jspecify.annotations.NullMarked;
21+
22+
import javax.annotation.CheckReturnValue;

rewrite-groovy/src/main/java/org/openrewrite/groovy/GroovyTypeMapping.java

Lines changed: 8 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,7 @@ private JavaType.FullyQualified classType(ClassNode node, String signature) {
130130

131131
List<JavaType.FullyQualified> annotations = getAnnotations(node);
132132

133-
clazz.unsafeSet(null, supertype, owner, annotations, interfaces, fields, methods);
134-
return clazz;
133+
return clazz.unsafeSet(null, supertype, owner, annotations, interfaces, fields, methods);
135134
}
136135

137136
}
@@ -150,21 +149,18 @@ private JavaType parameterizedType(ClassNode type, String signature) {
150149
}
151150
}
152151

153-
pt.unsafeSet(clazz, typeParameters);
154-
return pt;
152+
return pt.unsafeSet(clazz, typeParameters);
155153
}
156154

157155
private JavaType.Array arrayType(ClassNode array, String signature) {
158156
JavaType.Array arr = new JavaType.Array(null, null, null);
159157
typeCache.put(signature, arr);
160158

161159
if (array.getComponentType().isUsingGenerics()) {
162-
arr.unsafeSet(type(array.getComponentType().getGenericsTypes()[0]), null);
160+
return arr.unsafeSet(type(array.getComponentType().getGenericsTypes()[0]), null);
163161
} else {
164-
arr.unsafeSet(type(array.getComponentType()), null);
162+
return arr.unsafeSet(type(array.getComponentType()), null);
165163
}
166-
167-
return arr;
168164
}
169165

170166
private JavaType genericType(GenericsType g, String signature) {
@@ -199,8 +195,7 @@ private JavaType genericType(GenericsType g, String signature) {
199195
}
200196
}
201197

202-
gtv.unsafeSet(gtv.getName(), variance, bounds);
203-
return gtv;
198+
return gtv.unsafeSet(gtv.getName(), variance, bounds);
204199
}
205200

206201
public JavaType.@Nullable Method methodType(@Nullable MethodNode node) {
@@ -254,15 +249,13 @@ private JavaType genericType(GenericsType g, String signature) {
254249

255250
List<JavaType.FullyQualified> annotations = getAnnotations(node);
256251

257-
method.unsafeSet(
252+
return method.unsafeSet(
258253
TypeUtils.asFullyQualified(type(node.getDeclaringClass())),
259254
type(node.getReturnType()),
260255
parameterTypes,
261256
thrownExceptions,
262257
annotations
263258
);
264-
265-
return method;
266259
}
267260

268261
public JavaType.@Nullable Variable variableType(@Nullable FieldNode node) {
@@ -285,10 +278,7 @@ private JavaType genericType(GenericsType g, String signature) {
285278
typeCache.put(signature, variable);
286279

287280
List<JavaType.FullyQualified> annotations = getAnnotations(node);
288-
289-
variable.unsafeSet(type(node.getOwner()), type(node.getType()), annotations);
290-
291-
return variable;
281+
return variable.unsafeSet(type(node.getOwner()), type(node.getType()), annotations);
292282
}
293283

294284
/**
@@ -317,9 +307,7 @@ private JavaType genericType(GenericsType g, String signature) {
317307

318308
typeCache.put(signature, variable);
319309

320-
variable.unsafeSet(JavaType.Unknown.getInstance(), type, (JavaType.FullyQualified[]) null);
321-
322-
return variable;
310+
return variable.unsafeSet(JavaType.Unknown.getInstance(), type, (JavaType.FullyQualified[]) null);
323311
}
324312

325313
private @Nullable List<JavaType.FullyQualified> getAnnotations(AnnotatedNode node) {

rewrite-groovy/src/main/java/org/openrewrite/groovy/tree/package-info.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16+
@CheckReturnValue
1617
@NullMarked
1718
package org.openrewrite.groovy.tree;
1819

1920
import org.jspecify.annotations.NullMarked;
21+
22+
import javax.annotation.CheckReturnValue;

rewrite-hcl/src/main/java/org/openrewrite/hcl/tree/package-info.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@
1313
* See the License for the specific language governing permissions and
1414
* limitations under the License.
1515
*/
16+
@CheckReturnValue
1617
@NullMarked
1718
@NonNullFields
1819
package org.openrewrite.hcl.tree;
1920

2021
import org.jspecify.annotations.NullMarked;
2122
import org.openrewrite.internal.lang.NonNullFields;
23+
24+
import javax.annotation.CheckReturnValue;

rewrite-java-21/src/main/java/org/openrewrite/java/isolated/ReloadableJava21TypeMapping.java

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -87,15 +87,13 @@ private JavaType intersectionType(Type.IntersectionClassType type, String signat
8787
TypeMirror bound = bounds.get(i);
8888
types[i] = type((Type) bound);
8989
}
90-
intersection.unsafeSet(types);
91-
return intersection;
90+
return intersection.unsafeSet(types);
9291
}
9392

9493
private JavaType array(Type type, String signature) {
9594
JavaType.Array arr = new JavaType.Array(null, null, null);
9695
typeCache.put(signature, arr);
97-
arr.unsafeSet(type(((Type.ArrayType) type).elemtype), null);
98-
return arr;
96+
return arr.unsafeSet(type(((Type.ArrayType) type).elemtype), null);
9997
}
10098

10199
/**
@@ -188,8 +186,7 @@ private JavaType.GenericTypeVariable generic(Type.WildcardType wildcard, String
188186
bounds = null;
189187
}
190188

191-
gtv.unsafeSet(gtv.getName(), variance, bounds);
192-
return gtv;
189+
return gtv.unsafeSet(gtv.getName(), variance, bounds);
193190
}
194191

195192
private JavaType generic(Type.TypeVar type, String signature) {
@@ -222,8 +219,7 @@ private JavaType generic(Type.TypeVar type, String signature) {
222219
}
223220
}
224221

225-
gtv.unsafeSet(gtv.getName(), bounds == null ? INVARIANT : COVARIANT, bounds);
226-
return gtv;
222+
return gtv.unsafeSet(gtv.getName(), bounds == null ? INVARIANT : COVARIANT, bounds);
227223
}
228224

229225
private JavaType.FullyQualified classType(Type.ClassType classType, String signature) {
@@ -305,7 +301,7 @@ private JavaType.FullyQualified classType(Type.ClassType classType, String signa
305301
typeParameters.add(type(tParam));
306302
}
307303
}
308-
clazz.unsafeSet(typeParameters, supertype, owner, listAnnotations(sym), interfaces, fields, methods);
304+
clazz = clazz.unsafeSet(typeParameters, supertype, owner, listAnnotations(sym), interfaces, fields, methods);
309305
}
310306

311307
if (classType.typarams_field != null && classType.typarams_field.length() > 0) {
@@ -319,7 +315,7 @@ private JavaType.FullyQualified classType(Type.ClassType classType, String signa
319315
typeParameters.add(type(tParam));
320316
}
321317

322-
pt.unsafeSet(clazz, typeParameters);
318+
return pt.unsafeSet(clazz, typeParameters);
323319
}
324320
return pt;
325321
}
@@ -441,8 +437,7 @@ public JavaType.Primitive primitive(TypeTag tag) {
441437
assert resolvedOwner != null;
442438
}
443439

444-
variable.unsafeSet(resolvedOwner, type(symbol.type), listAnnotations(symbol));
445-
return variable;
440+
return variable.unsafeSet(resolvedOwner, type(symbol.type), listAnnotations(symbol));
446441
}
447442

448443
/**
@@ -546,10 +541,9 @@ public JavaType.Primitive primitive(TypeTag tag) {
546541

547542
assert returnType != null;
548543

549-
method.unsafeSet(resolvedDeclaringType,
544+
return method.unsafeSet(resolvedDeclaringType,
550545
methodSymbol.isConstructor() ? resolvedDeclaringType : returnType,
551546
parameterTypes, exceptionTypes, listAnnotations(methodSymbol));
552-
return method;
553547
}
554548

555549
/**
@@ -675,10 +669,9 @@ public JavaType.Primitive primitive(TypeTag tag) {
675669
throw new UnsupportedOperationException("Unexpected method signature type" + signatureType.getClass().getName());
676670
}
677671

678-
method.unsafeSet(resolvedDeclaringType,
672+
return method.unsafeSet(resolvedDeclaringType,
679673
methodSymbol.isConstructor() ? resolvedDeclaringType : returnType,
680674
parameterTypes, exceptionTypes, listAnnotations(methodSymbol));
681-
return method;
682675
}
683676

684677
return null;

rewrite-java-25/src/main/java/org/openrewrite/java/isolated/ReloadableJava25TypeMapping.java

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -86,15 +86,13 @@ private JavaType intersectionType(Type.IntersectionClassType type, String signat
8686
TypeMirror bound = bounds.get(i);
8787
types[i] = type((Type) bound);
8888
}
89-
intersection.unsafeSet(types);
90-
return intersection;
89+
return intersection.unsafeSet(types);
9190
}
9291

9392
private JavaType array(Type type, String signature) {
9493
JavaType.Array arr = new JavaType.Array(null, null, null);
9594
typeCache.put(signature, arr);
96-
arr.unsafeSet(type(((Type.ArrayType) type).elemtype), null);
97-
return arr;
95+
return arr.unsafeSet(type(((Type.ArrayType) type).elemtype), null);
9896
}
9997

10098
/**
@@ -187,8 +185,7 @@ private JavaType.GenericTypeVariable generic(Type.WildcardType wildcard, String
187185
bounds = null;
188186
}
189187

190-
gtv.unsafeSet(gtv.getName(), variance, bounds);
191-
return gtv;
188+
return gtv.unsafeSet(gtv.getName(), variance, bounds);
192189
}
193190

194191
private JavaType generic(Type.TypeVar type, String signature) {
@@ -221,8 +218,7 @@ private JavaType generic(Type.TypeVar type, String signature) {
221218
}
222219
}
223220

224-
gtv.unsafeSet(gtv.getName(), bounds == null ? INVARIANT : COVARIANT, bounds);
225-
return gtv;
221+
return gtv.unsafeSet(gtv.getName(), bounds == null ? INVARIANT : COVARIANT, bounds);
226222
}
227223

228224
private JavaType.FullyQualified classType(Type.ClassType classType, String signature) {
@@ -304,7 +300,7 @@ private JavaType.FullyQualified classType(Type.ClassType classType, String signa
304300
typeParameters.add(type(tParam));
305301
}
306302
}
307-
clazz.unsafeSet(typeParameters, supertype, owner, listAnnotations(sym), interfaces, fields, methods);
303+
clazz = clazz.unsafeSet(typeParameters, supertype, owner, listAnnotations(sym), interfaces, fields, methods);
308304
}
309305

310306
if (classType.typarams_field != null && classType.typarams_field.length() > 0) {
@@ -318,7 +314,7 @@ private JavaType.FullyQualified classType(Type.ClassType classType, String signa
318314
typeParameters.add(type(tParam));
319315
}
320316

321-
pt.unsafeSet(clazz, typeParameters);
317+
return pt.unsafeSet(clazz, typeParameters);
322318
}
323319
return pt;
324320
}
@@ -440,8 +436,7 @@ public JavaType.Primitive primitive(TypeTag tag) {
440436
assert resolvedOwner != null;
441437
}
442438

443-
variable.unsafeSet(resolvedOwner, type(symbol.type), listAnnotations(symbol));
444-
return variable;
439+
return variable.unsafeSet(resolvedOwner, type(symbol.type), listAnnotations(symbol));
445440
}
446441

447442
/**
@@ -542,10 +537,9 @@ public JavaType.Primitive primitive(TypeTag tag) {
542537

543538
assert returnType != null;
544539

545-
method.unsafeSet(resolvedDeclaringType,
540+
return method.unsafeSet(resolvedDeclaringType,
546541
methodSymbol.isConstructor() ? resolvedDeclaringType : returnType,
547542
parameterTypes, exceptionTypes, listAnnotations(methodSymbol));
548-
return method;
549543
}
550544

551545
/**
@@ -671,10 +665,9 @@ public JavaType.Primitive primitive(TypeTag tag) {
671665
throw new UnsupportedOperationException("Unexpected method signature type" + signatureType.getClass().getName());
672666
}
673667

674-
method.unsafeSet(resolvedDeclaringType,
668+
return method.unsafeSet(resolvedDeclaringType,
675669
methodSymbol.isConstructor() ? resolvedDeclaringType : returnType,
676670
parameterTypes, exceptionTypes, listAnnotations(methodSymbol));
677-
return method;
678671
}
679672

680673
return null;

rewrite-java/src/main/java/org/openrewrite/java/JavaTypeVisitor.java

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -106,30 +106,27 @@ public JavaType visit(@Nullable JavaType javaType, P p) {
106106
}
107107

108108
public JavaType visitMultiCatch(JavaType.MultiCatch multiCatch, P p) {
109-
multiCatch.unsafeSet(
109+
return multiCatch.unsafeSet(
110110
visit(multiCatch.getThrowableTypes(), p)
111111
);
112-
return multiCatch;
113112
}
114113

115114
public JavaType visitAnnotation(JavaType.Annotation annotation, P p) {
116-
annotation.unsafeSet(
115+
return annotation.unsafeSet(
117116
(JavaType.FullyQualified) visit(annotation.getType(), p),
118117
arrayOrNullIfEmpty(annotation.getValues(), JavaType.EMPTY_ANNOTATION_VALUE_ARRAY)
119118
);
120-
return annotation;
121119
}
122120

123121
public JavaType visitArray(JavaType.Array array, P p) {
124-
array.unsafeSet(
122+
return array.unsafeSet(
125123
visit(array.getElemType(), p),
126124
arrayOrNullIfEmpty(visit(array.getAnnotations(), p), JavaType.EMPTY_FULLY_QUALIFIED_ARRAY)
127125
);
128-
return array;
129126
}
130127

131128
public JavaType visitClass(JavaType.Class aClass, P p) {
132-
aClass.unsafeSet(
129+
return aClass.unsafeSet(
133130
visit(aClass.getTypeParameters(), p),
134131
(JavaType.FullyQualified) visit(aClass.getSupertype(), p),
135132
(JavaType.FullyQualified) visit(aClass.getOwningClass(), p),
@@ -138,23 +135,20 @@ public JavaType visitClass(JavaType.Class aClass, P p) {
138135
ListUtils.map(aClass.getMembers(), m -> (JavaType.Variable) visit(m, p)),
139136
ListUtils.map(aClass.getMethods(), m -> (JavaType.Method) visit(m, p))
140137
);
141-
return aClass;
142138
}
143139

144140
public JavaType visitGenericTypeVariable(JavaType.GenericTypeVariable generic, P p) {
145-
generic.unsafeSet(
141+
return generic.unsafeSet(
146142
generic.getName(),
147143
generic.getVariance(),
148144
visit(generic.getBounds(), p)
149145
);
150-
return generic;
151146
}
152147

153148
public JavaType visitIntersection(JavaType.Intersection intersection, P p) {
154-
intersection.unsafeSet(
149+
return intersection.unsafeSet(
155150
visit(intersection.getBounds(), p)
156151
);
157-
return intersection;
158152
}
159153

160154
/**
@@ -165,22 +159,20 @@ public JavaType visitIntersection(JavaType.Intersection intersection, P p) {
165159
* @return A method
166160
*/
167161
public JavaType visitMethod(JavaType.Method method, P p) {
168-
method.unsafeSet(
162+
return method.unsafeSet(
169163
(JavaType.FullyQualified) visit(method.getDeclaringType(), p),
170164
visit(method.getReturnType(), p),
171165
visit(method.getParameterTypes(), p),
172166
visit(method.getThrownExceptions(), p),
173167
ListUtils.map(method.getAnnotations(), a -> (JavaType.FullyQualified) visit(a, p))
174168
);
175-
return method;
176169
}
177170

178171
public JavaType visitParameterized(JavaType.Parameterized parameterized, P p) {
179-
parameterized.unsafeSet(
172+
return parameterized.unsafeSet(
180173
(JavaType.FullyQualified) visit(parameterized.getType(), p),
181174
visit(parameterized.getTypeParameters(), p)
182175
);
183-
return parameterized;
184176
}
185177

186178
public JavaType visitPrimitive(JavaType.Primitive primitive, P p) {
@@ -199,11 +191,10 @@ public JavaType visitUnknown(JavaType.Unknown unknown, P p) {
199191
* @return A variable
200192
*/
201193
public JavaType visitVariable(JavaType.Variable variable, P p) {
202-
variable.unsafeSet(
194+
return variable.unsafeSet(
203195
visit(variable.getOwner(), p),
204196
visit(variable.getType(), p),
205197
ListUtils.map(variable.getAnnotations(), a -> (JavaType.FullyQualified) visit(a, p))
206198
);
207-
return variable;
208199
}
209200
}

0 commit comments

Comments
 (0)