Skip to content

Commit 6095105

Browse files
authored
Simplify code by not calling Set.contains() before add() (#83)
1 parent e56ebae commit 6095105

File tree

2 files changed

+5
-6
lines changed

2 files changed

+5
-6
lines changed

VERSION.txt

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ Release notes:
66
1.7.0 (not yet released)
77

88
#75: Move JDK baseline to Java 8
9+
(contributed by Dave B, @mebigfatguy)
10+
#83: Simplify code by not calling `Set.contains()` before `add()`
911
- Remove `Automatic-Module-Name` since we provide proper module-info
1012

1113
1.6.0 (10-Oct-2023)

src/main/java/com/fasterxml/classmate/MemberResolver.java

+3-6
Original file line numberDiff line numberDiff line change
@@ -175,8 +175,7 @@ public ResolvedTypeWithMembers resolve(final ResolvedType mainType,
175175
private void _addOverrides(List<HierarchicType> typesWithOverrides, Set<ClassKey> seenTypes, Class<?> override)
176176
{
177177
ClassKey key = new ClassKey(override);
178-
if (!seenTypes.contains(key)) {
179-
seenTypes.add(key);
178+
if (seenTypes.add(key)) {
180179
ResolvedType resolvedOverride = _typeResolver.resolve(override);
181180
typesWithOverrides.add(new HierarchicType(resolvedOverride, true, typesWithOverrides.size()));
182181
for (ResolvedType r : resolvedOverride.getImplementedInterfaces()) { // interfaces?
@@ -194,8 +193,7 @@ private void _addOverrides(List<HierarchicType> typesWithOverrides, Set<ClassKey
194193
Class<?> raw = override.getErasedType();
195194
if (!_cfgIncludeLangObject && Object.class == raw) return;
196195
ClassKey key = new ClassKey(raw);
197-
if (!seenTypes.contains(key)) {
198-
seenTypes.add(key);
196+
if (seenTypes.add(key)) {
199197
typesWithOverrides.add(new HierarchicType(override, true, typesWithOverrides.size()));
200198
for (ResolvedType r : override.getImplementedInterfaces()) { // interfaces?
201199
_addOverrides(typesWithOverrides, seenTypes, r);
@@ -227,11 +225,10 @@ protected void _gatherTypes(ResolvedType currentType, Set<ClassKey> seenTypes,
227225
}
228226
// Finally, only include first instance of an interface, so:
229227
ClassKey key = new ClassKey(currentType.getErasedType());
230-
if (seenTypes.contains(key)) {
228+
if (!seenTypes.add(key)) {
231229
return;
232230
}
233231
// If all good so far, append
234-
seenTypes.add(key);
235232
types.add(currentType);
236233
/* and check supertypes; starting with interfaces. Why interfaces?
237234
* So that "highest" interfaces get priority; otherwise we'd recurse

0 commit comments

Comments
 (0)