cleanup: notnull and fix Processor type parameter types

GitOrigin-RevId: 694f1cf4f8b2602e5a0e199c92490e68ec303c1b
This commit is contained in:
Alexey Kudravtsev
2020-09-11 16:39:04 +02:00
committed by intellij-monorepo-bot
parent fb8057850a
commit 5d41e42767
26 changed files with 48 additions and 46 deletions

View File

@@ -187,7 +187,7 @@ final class PackagePrefixFileSystemItemImpl extends PsiElementBase implements Ps
}
@Override
public boolean processChildren(@NotNull final PsiElementProcessor<PsiFileSystemItem> processor) {
public boolean processChildren(final @NotNull PsiElementProcessor<? super PsiFileSystemItem> processor) {
if (myIndex == myPackages.length - 1) {
return myDirectory.processChildren(processor);
}

View File

@@ -48,14 +48,14 @@ public abstract class JspSpiUtil {
protected abstract int _escapeCharsInJspContext(JspFile file, int offset, String toEscape) throws IncorrectOperationException;
public static void visitAllIncludedFilesRecursively(BaseJspFile jspFile, Processor<BaseJspFile> visitor) {
public static void visitAllIncludedFilesRecursively(BaseJspFile jspFile, Processor<? super BaseJspFile> visitor) {
final JspSpiUtil util = getJspSpiUtil();
if (util != null) {
util._visitAllIncludedFilesRecursively(jspFile, visitor);
}
}
protected abstract void _visitAllIncludedFilesRecursively(BaseJspFile jspFile, Processor<BaseJspFile> visitor);
protected abstract void _visitAllIncludedFilesRecursively(BaseJspFile jspFile, Processor<? super BaseJspFile> visitor);
@Nullable
public static PsiElement resolveMethodPropertyReference(@NotNull PsiReference reference, @Nullable PsiClass resolvedClass, boolean readable) {

View File

@@ -133,7 +133,7 @@ public class MockPsiDirectory extends MockPsiElement implements PsiDirectory {
}
@Override
public boolean processChildren(@NotNull final PsiElementProcessor<PsiFileSystemItem> processor) {
public boolean processChildren(final @NotNull PsiElementProcessor<? super PsiFileSystemItem> processor) {
throw new UnsupportedOperationException("Method processChildren is not yet implemented in " + getClass().getName());
}

View File

@@ -213,7 +213,7 @@ public class FileReference implements PsiFileReference, FileReferenceOwner, PsiP
else {
processVariants(context, new PsiFileSystemItemProcessor() {
@Override
public boolean acceptItem(String name, boolean isDirectory) {
public boolean acceptItem(@NotNull String name, boolean isDirectory) {
return caseSensitive ? decoded.equals(name) : decoded.compareToIgnoreCase(name) == 0;
}

View File

@@ -20,6 +20,7 @@
package com.intellij.psi.search;
import com.intellij.openapi.util.io.FileUtil;
import org.jetbrains.annotations.NotNull;
public abstract class SpecificNameItemProcessor implements PsiFileSystemItemProcessor {
private final String myName;
@@ -33,7 +34,7 @@ public abstract class SpecificNameItemProcessor implements PsiFileSystemItemProc
}
@Override
public boolean acceptItem(String name, boolean isDirectory) {
public boolean acceptItem(@NotNull String name, boolean isDirectory) {
return FileUtil.namesEqual(myName, name);
}
}

View File

@@ -39,5 +39,5 @@ public interface PsiFileSystemItem extends PsiCheckedRenameElement, NavigatableP
@NotNull @NlsSafe
String getName();
boolean processChildren(@NotNull PsiElementProcessor<PsiFileSystemItem> processor);
boolean processChildren(@NotNull PsiElementProcessor<? super PsiFileSystemItem> processor);
}

View File

@@ -666,7 +666,7 @@ public class PsiUtilCore {
}
@Override
public boolean processChildren(@NotNull PsiElementProcessor<PsiFileSystemItem> processor) {
public boolean processChildren(@NotNull PsiElementProcessor<? super PsiFileSystemItem> processor) {
throw createException();
}

View File

@@ -41,7 +41,7 @@ public class PsiBinaryFileImpl extends PsiElementBase implements PsiBinaryFile,
}
@Override
public boolean processChildren(@NotNull final PsiElementProcessor<PsiFileSystemItem> processor) {
public boolean processChildren(final @NotNull PsiElementProcessor<? super PsiFileSystemItem> processor) {
return true;
}

View File

@@ -175,7 +175,7 @@ public class PsiDirectoryImpl extends PsiElementBase implements PsiDirectory, Qu
}
@Override
public boolean processChildren(@NotNull PsiElementProcessor<PsiFileSystemItem> processor) {
public boolean processChildren(@NotNull PsiElementProcessor<? super PsiFileSystemItem> processor) {
checkValid();
for (VirtualFile vFile : myFile.getChildren()) {

View File

@@ -126,7 +126,7 @@ public abstract class PsiFileImpl extends ElementBase implements PsiFileEx, PsiF
}
@Override
public boolean processChildren(@NotNull final PsiElementProcessor<PsiFileSystemItem> processor) {
public boolean processChildren(final @NotNull PsiElementProcessor<? super PsiFileSystemItem> processor) {
return true;
}

View File

@@ -17,11 +17,11 @@
package com.intellij.psi.search;
import com.intellij.psi.PsiFileSystemItem;
import org.jetbrains.annotations.NotNull;
/**
* @author Dmitry Avdeev
*/
public interface PsiFileSystemItemProcessor extends PsiElementProcessor<PsiFileSystemItem> {
boolean acceptItem(String name, boolean isDirectory);
boolean acceptItem(@NotNull String name, boolean isDirectory);
}

View File

@@ -128,7 +128,7 @@ public class DefaultNavBarExtension extends AbstractNavBarModelExtension {
private static boolean processChildren(final PsiFileSystemItem object, final Processor<Object> processor) {
return ReadAction.compute(() -> object.processChildren(new PsiFileSystemItemProcessor() {
@Override
public boolean acceptItem(String name, boolean isDirectory) {
public boolean acceptItem(@NotNull String name, boolean isDirectory) {
return true;
}

View File

@@ -42,7 +42,7 @@ public abstract class LightPsiFileImpl extends PsiElementBase implements PsiFile
}
@Override
public boolean processChildren(@NotNull final PsiElementProcessor<PsiFileSystemItem> processor) {
public boolean processChildren(final @NotNull PsiElementProcessor<? super PsiFileSystemItem> processor) {
return true;
}

View File

@@ -334,7 +334,7 @@ public class PsiFileReferenceHelper extends FileReferenceHelper {
}
@Override
public boolean processChildren(@NotNull PsiElementProcessor<PsiFileSystemItem> processor) {
public boolean processChildren(@NotNull PsiElementProcessor<? super PsiFileSystemItem> processor) {
return false;
}
}

View File

@@ -49,7 +49,7 @@ public class MockPsiFile extends MockPsiElement implements PsiFile {
}
@Override
public boolean processChildren(@NotNull final PsiElementProcessor<PsiFileSystemItem> processor) {
public boolean processChildren(final @NotNull PsiElementProcessor<? super PsiFileSystemItem> processor) {
return true;
}

View File

@@ -297,7 +297,7 @@ public class PropertiesCopyHandler extends CopyHandlerDelegateBase {
}
@Override
public boolean processChildren(@NotNull PsiElementProcessor<PsiFileSystemItem> processor) {
public boolean processChildren(@NotNull PsiElementProcessor<? super PsiFileSystemItem> processor) {
for (PropertiesFile propertiesFile : myResourceBundle.getPropertiesFiles()) {
if (!propertiesFile.getContainingFile().processChildren(processor)) {
return false;

View File

@@ -154,7 +154,7 @@ public class PyJavaClassType implements PyClassLikeType {
}
@Override
public void visitMembers(@NotNull final Processor<PsiElement> processor, final boolean inherited, @NotNull TypeEvalContext context) {
public void visitMembers(final @NotNull Processor<? super PsiElement> processor, final boolean inherited, @NotNull TypeEvalContext context) {
for (PsiMethod method : myClass.getAllMethods()) {
processor.process(method);
}

View File

@@ -178,14 +178,14 @@ public interface PyClass extends PsiNameIdentifierOwner, PyStatement, PyDocStrin
* @param context loose context will be used if no context provided
* @see PyClassLikeType#visitMembers(Processor, boolean, TypeEvalContext)
*/
boolean visitMethods(Processor<PyFunction> processor, boolean inherited, @Nullable TypeEvalContext context);
boolean visitMethods(Processor<? super PyFunction> processor, boolean inherited, @Nullable TypeEvalContext context);
/**
* Consider using {@link PyClassLikeType#visitMembers(Processor, boolean, TypeEvalContext)}
*
* @see PyClassLikeType#visitMembers(Processor, boolean, TypeEvalContext)
*/
boolean visitClassAttributes(Processor<PyTargetExpression> processor, boolean inherited, TypeEvalContext context);
boolean visitClassAttributes(Processor<? super PyTargetExpression> processor, boolean inherited, TypeEvalContext context);
/**
* Effectively collects assignments inside the class body.
@@ -244,7 +244,7 @@ public interface PyClass extends PsiNameIdentifierOwner, PyStatement, PyDocStrin
* @return a property that processor accepted, or null.
*/
@Nullable
Property scanProperties(Processor<Property> processor, boolean inherited);
Property scanProperties(Processor<? super Property> processor, boolean inherited);
/**
* Non-recursively searches for a property for which the given function is a getter, setter or deleter.

View File

@@ -54,9 +54,9 @@ public interface PyClassLikeType extends PyCallableType, PyWithAncestors, PyInst
* @param processor visitor
* @param inherited call on parents too
* @param context context to be used to resolve types
* @see PyTypeUtil#getMembersOfType(PyClassLikeType, Class, boolean, TypeEvalContext)
* @see PyTypeUtil#getMembersOfType(PyClassLikeType, Class, boolean, TypeEvalContext)
*/
void visitMembers(@NotNull Processor<PsiElement> processor, boolean inherited, @NotNull TypeEvalContext context);
void visitMembers(@NotNull Processor<? super PsiElement> processor, boolean inherited, @NotNull TypeEvalContext context);
@NotNull
Set<String> getMemberNames(boolean inherited, @NotNull TypeEvalContext context);

View File

@@ -24,6 +24,7 @@ import com.intellij.psi.util.QualifiedName;
import com.intellij.util.ArrayUtil;
import com.intellij.util.ProcessingContext;
import com.intellij.util.Processor;
import com.intellij.util.containers.ContainerUtil;
import com.jetbrains.python.codeInsight.typing.PyTypingTypeProvider;
import com.jetbrains.python.psi.*;
import com.jetbrains.python.psi.resolve.PyResolveContext;
@@ -147,7 +148,7 @@ public final class PyCustomType implements PyClassLikeType {
@Override
public boolean isValid() {
return StreamEx.of(myTypesToMimic).allMatch(PyClassLikeType::isValid);
return ContainerUtil.and(myTypesToMimic, PyClassLikeType::isValid);
}
@Nullable
@@ -160,7 +161,7 @@ public final class PyCustomType implements PyClassLikeType {
public boolean isCallable() {
return !myInstanceType ||
PyTypingTypeProvider.CALLABLE.equals(myQualifiedName) ||
StreamEx.of(myTypesToMimic).anyMatch(PyCallableType::isCallable);
ContainerUtil.or(myTypesToMimic, PyCallableType::isCallable);
}
@Nullable
@@ -267,7 +268,7 @@ public final class PyCustomType implements PyClassLikeType {
}
@Override
public void visitMembers(@NotNull Processor<PsiElement> processor, boolean inherited, @NotNull TypeEvalContext context) {
public void visitMembers(@NotNull Processor<? super PsiElement> processor, boolean inherited, @NotNull TypeEvalContext context) {
for (PyClassLikeType type : myTypesToMimic) {
// Only visit methods that are allowed by filter (if any)
type.visitMembers(t -> {

View File

@@ -489,7 +489,7 @@ public class PyClassImpl extends PyBaseElementImpl<PyClassStub> implements PyCla
private <T extends StubBasedPsiElement<? extends StubElement<T>>> T @NotNull [] getClassChildren(@NotNull TokenSet elementTypes,
@NotNull Class<T> childrenClass,
@NotNull ArrayFactory<T> factory) {
@NotNull ArrayFactory<? extends T> factory) {
final List<T> result = new ArrayList<>();
processClassLevelDeclarations(new PsiScopeProcessor() {
@Override
@@ -652,7 +652,7 @@ public class PyClassImpl extends PyBaseElementImpl<PyClassStub> implements PyCla
* @return the first property that filter accepted.
*/
@Nullable
private Property processPropertiesInClass(@Nullable Processor<Property> filter) {
private Property processPropertiesInClass(@Nullable Processor<? super Property> filter) {
final Property decoratedProperty = processDecoratedProperties(filter);
if (decoratedProperty != null) return decoratedProperty;
@@ -673,7 +673,7 @@ public class PyClassImpl extends PyBaseElementImpl<PyClassStub> implements PyCla
}
@Nullable
private Property processDecoratedProperties(@Nullable Processor<Property> filter) {
private Property processDecoratedProperties(@Nullable Processor<? super Property> filter) {
// look at @property decorators
final MultiMap<String, PyFunction> grouped = new MultiMap<>();
// group suitable same-named methods, each group defines a property
@@ -735,7 +735,7 @@ public class PyClassImpl extends PyBaseElementImpl<PyClassStub> implements PyCla
}
@Nullable
private Property processStubProperties(@Nullable Processor<Property> filter) {
private Property processStubProperties(@Nullable Processor<? super Property> filter) {
final PyClassStub stub = getStub();
if (stub != null) {
for (StubElement subStub : stub.getChildrenStubs()) {
@@ -820,12 +820,12 @@ public class PyClassImpl extends PyBaseElementImpl<PyClassStub> implements PyCla
@Nullable
@Override
public Property scanProperties(@Nullable Processor<Property> filter, boolean inherited) {
public Property scanProperties(Processor<? super Property> filter, boolean inherited) {
return processProperties(filter, inherited);
}
@Nullable
private Property processProperties(@Nullable Processor<Property> filter, boolean inherited) {
private Property processProperties(@Nullable Processor<? super Property> filter, boolean inherited) {
PyPsiUtils.assertValid(this);
final Property local = processPropertiesInClass(filter);
@@ -982,7 +982,7 @@ public class PyClassImpl extends PyBaseElementImpl<PyClassStub> implements PyCla
}
@Override
public boolean visitMethods(Processor<PyFunction> processor, boolean inherited, @Nullable final TypeEvalContext context) {
public boolean visitMethods(Processor<? super PyFunction> processor, boolean inherited, @Nullable final TypeEvalContext context) {
if (!ContainerUtil.process(getMethods(), processor)) return false;
if (inherited) {
for (PyClass ancestor : getAncestorClasses(context)) {
@@ -994,7 +994,7 @@ public class PyClassImpl extends PyBaseElementImpl<PyClassStub> implements PyCla
return true;
}
public boolean visitNestedClasses(Processor<PyClass> processor, boolean inherited) {
public boolean visitNestedClasses(Processor<? super PyClass> processor, boolean inherited) {
PyClass[] nestedClasses = getNestedClasses();
if (!ContainerUtil.process(nestedClasses, processor)) return false;
if (inherited) {
@@ -1008,7 +1008,7 @@ public class PyClassImpl extends PyBaseElementImpl<PyClassStub> implements PyCla
}
@Override
public boolean visitClassAttributes(Processor<PyTargetExpression> processor, boolean inherited, @Nullable final TypeEvalContext context) {
public boolean visitClassAttributes(Processor<? super PyTargetExpression> processor, boolean inherited, @Nullable final TypeEvalContext context) {
List<PyTargetExpression> methods = getClassAttributes();
if (!ContainerUtil.process(methods, processor)) return false;
if (inherited) {
@@ -1381,7 +1381,7 @@ public class PyClassImpl extends PyBaseElementImpl<PyClassStub> implements PyCla
private void fillSuperClassesNoSwitchToAst(@NotNull final TypeEvalContext context,
@Nullable final PyClassStub stub,
@NotNull final List<PyClassLikeType> result) {
final @NotNull List<? super PyClassLikeType> result) {
final Map<QualifiedName, QualifiedName> superClasses = stub != null
? stub.getSuperClasses()
: PyClassElementType.getSuperClassQNames(this);

View File

@@ -99,7 +99,7 @@ public class PyFileImpl extends PsiFileBase implements PyFile, PyExpression {
Collections.reverse(myImportedNameDefiners);
}
private boolean processDeclarations(@NotNull List<PsiElement> elements, @NotNull Processor<PsiElement> processor) {
private boolean processDeclarations(@NotNull List<PsiElement> elements, @NotNull Processor<? super PsiElement> processor) {
for (PsiElement child : elements) {
if (!processor.process(child)) {
return false;

View File

@@ -467,7 +467,7 @@ public class PyNamedParameterImpl extends PyBaseElementImpl<PyNamedParameterStub
return Collections.emptyList();
}
private static void processLocalCalls(@NotNull PyFunction function, @NotNull Processor<PyCallExpression> processor) {
private static void processLocalCalls(@NotNull PyFunction function, @NotNull Processor<? super PyCallExpression> processor) {
final PsiFile file = function.getContainingFile();
final String name = function.getName();
if (file != null && name != null) {

View File

@@ -568,7 +568,7 @@ public class PyClassTypeImpl extends UserDataHolderBase implements PyClassType {
}
@Override
public void visitMembers(@NotNull Processor<PsiElement> processor, boolean inherited, @NotNull TypeEvalContext context) {
public void visitMembers(@NotNull Processor<? super PsiElement> processor, boolean inherited, @NotNull TypeEvalContext context) {
processMembers(processor);
if (inherited) {
@@ -627,7 +627,7 @@ public class PyClassTypeImpl extends UserDataHolderBase implements PyClassType {
return result;
}
private void processMembers(@NotNull Processor<PsiElement> processor) {
private void processMembers(@NotNull Processor<? super PsiElement> processor) {
final PsiScopeProcessor scopeProcessor = new PsiScopeProcessor() {
@Override
public boolean execute(@NotNull PsiElement element, @NotNull ResolveState state) {
@@ -646,7 +646,7 @@ public class PyClassTypeImpl extends UserDataHolderBase implements PyClassType {
}
}
private void processOwnSlots(@NotNull Processor<String> processor, @NotNull TypeEvalContext context) {
private void processOwnSlots(@NotNull Processor<? super String> processor, @NotNull TypeEvalContext context) {
if (myClass.isNewStyleClass(context)) {
for (String slot : ContainerUtil.notNullize(myClass.getOwnSlots())) {
if (!processor.process(slot)) return;
@@ -654,7 +654,7 @@ public class PyClassTypeImpl extends UserDataHolderBase implements PyClassType {
}
}
private void processProvidedMembers(@NotNull Processor<PyCustomMember> processor,
private void processProvidedMembers(@NotNull Processor<? super PyCustomMember> processor,
@Nullable PsiElement location,
@NotNull TypeEvalContext context) {
for (PyClassMembersProvider provider : PyClassMembersProvider.EP_NAME.getExtensionList()) {
@@ -669,7 +669,7 @@ public class PyClassTypeImpl extends UserDataHolderBase implements PyClassType {
return StreamEx.of(types).nonNull().map(type -> isDefinition() ? type.toClass() : type.toInstance());
}
private void processMetaClassMembers(@NotNull Consumer<PyClassLikeType> typeTypeConsumer,
private void processMetaClassMembers(@NotNull Consumer<? super PyClassLikeType> typeTypeConsumer,
@NotNull Processor<? super PyTargetExpression> instanceTypeAttributesProcessor,
@NotNull TypeEvalContext context) {
if (!myClass.isNewStyleClass(context)) return;

View File

@@ -483,7 +483,7 @@ public class PythonSdkUpdater implements StartupActivity.Background {
* You may invoke it from any threads. Blocks until the commit is done in the AWT thread.
*/
private static void changeSdkModificator(@NotNull Sdk sdk, @Nullable SdkModificator sdkModificator,
@NotNull Processor<SdkModificator> processor) {
@NotNull Processor<? super SdkModificator> processor) {
final String key = PythonSdkType.getSdkKey(sdk);
TransactionGuard.getInstance().assertWriteSafeContext(ModalityState.defaultModalityState());
ApplicationManager.getApplication().invokeAndWait(() -> {

View File

@@ -257,7 +257,7 @@ public class PyAddImportQuickFixTest extends PyQuickFixTestCase {
doMultiFileAutoImportTest(hintPrefix, null);
}
private void doMultiFileAutoImportTest(@NotNull String hintPrefix, @Nullable Processor<AutoImportQuickFix> checkQuickfix) {
private void doMultiFileAutoImportTest(@NotNull String hintPrefix, @Nullable Processor<? super AutoImportQuickFix> checkQuickfix) {
configureMultiFileProject();
final PsiElement hostUnderCaret = myFixture.getFile().findElementAt(myFixture.getCaretOffset());