mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
NullableNotNullManager: fix accidental modification of all annotations (IDEA-CR-44894)
This commit is contained in:
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -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<String> nullables = getNullablesWithNickNames();
|
||||
Set<String> annotationNames = getAllNullabilityAnnotationsWithNickNames();
|
||||
Set<String> extraAnnotations = DEFAULT_ALL.stream().filter(anno -> !annotationNames.contains(anno)).collect(Collectors.toSet());
|
||||
annotationNames.addAll(extraAnnotations);
|
||||
Set<String> 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<String> getAllNullabilityAnnotationsWithNickNames() {
|
||||
Set<String> qNames = ContainerUtil.newHashSet(getNullablesWithNickNames());
|
||||
qNames.addAll(getNotNullsWithNickNames());
|
||||
return qNames;
|
||||
return Collections.unmodifiableSet(qNames);
|
||||
}
|
||||
|
||||
protected boolean hasHardcodedContracts(@NotNull PsiElement element) {
|
||||
|
||||
Reference in New Issue
Block a user