diff --git a/java/java-impl/src/com/intellij/codeInsight/NullableNotNullManagerImpl.java b/java/java-impl/src/com/intellij/codeInsight/NullableNotNullManagerImpl.java index e6b5eca0364f..6dd43bc917c4 100644 --- a/java/java-impl/src/com/intellij/codeInsight/NullableNotNullManagerImpl.java +++ b/java/java-impl/src/com/intellij/codeInsight/NullableNotNullManagerImpl.java @@ -302,7 +302,7 @@ public class NullableNotNullManagerImpl extends NullableNotNullManager implement result.addAll(getNotNulls()); result.addAll(getNullables()); result.addAll(ContainerUtil.mapNotNull(getAllNullabilityNickNames(), PsiClass::getQualifiedName)); - return CachedValueProvider.Result.create(result, PsiModificationTracker.MODIFICATION_COUNT); + return CachedValueProvider.Result.create(Collections.unmodifiableSet(result), PsiModificationTracker.MODIFICATION_COUNT); }); } diff --git a/java/java-psi-api/src/com/intellij/codeInsight/NullableNotNullManager.java b/java/java-psi-api/src/com/intellij/codeInsight/NullableNotNullManager.java index 4a115634bcb7..f4eca95ee223 100644 --- a/java/java-psi-api/src/com/intellij/codeInsight/NullableNotNullManager.java +++ b/java/java-psi-api/src/com/intellij/codeInsight/NullableNotNullManager.java @@ -15,10 +15,7 @@ import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.util.Arrays; -import java.util.List; -import java.util.Set; -import java.util.stream.Collectors; +import java.util.*; import static com.intellij.codeInsight.AnnotationUtil.*; @@ -256,8 +253,12 @@ public abstract class NullableNotNullManager { private NullabilityAnnotationInfo doFindEffectiveNullabilityAnnotation(@NotNull PsiModifierListOwner owner) { List nullables = getNullablesWithNickNames(); Set annotationNames = getAllNullabilityAnnotationsWithNickNames(); - Set extraAnnotations = DEFAULT_ALL.stream().filter(anno -> !annotationNames.contains(anno)).collect(Collectors.toSet()); - annotationNames.addAll(extraAnnotations); + Set extraAnnotations = new HashSet<>(DEFAULT_ALL); + extraAnnotations.removeAll(annotationNames); + if (!extraAnnotations.isEmpty()) { + annotationNames = new HashSet<>(annotationNames); + annotationNames.addAll(extraAnnotations); + } PsiAnnotation annotation = findPlainAnnotation(owner, true, annotationNames); if (annotation != null) { @@ -360,7 +361,7 @@ public abstract class NullableNotNullManager { protected Set getAllNullabilityAnnotationsWithNickNames() { Set qNames = ContainerUtil.newHashSet(getNullablesWithNickNames()); qNames.addAll(getNotNullsWithNickNames()); - return qNames; + return Collections.unmodifiableSet(qNames); } protected boolean hasHardcodedContracts(@NotNull PsiElement element) {