mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-20 05:21:29 +07:00
cleanup: notnull and fix Processor type parameter types
GitOrigin-RevId: 694f1cf4f8b2602e5a0e199c92490e68ec303c1b
This commit is contained in:
committed by
intellij-monorepo-bot
parent
fb8057850a
commit
5d41e42767
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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());
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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()) {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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 -> {
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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(() -> {
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user