mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 04:51:24 +07:00
[pycharm] prevent propagation of PyNarrowedType
GitOrigin-RevId: fdfd8e7563f36768b050efbf5ed8f259db994afd
This commit is contained in:
committed by
intellij-monorepo-bot
parent
a4b42aa71f
commit
a40425e28a
@@ -1925,6 +1925,16 @@ public final class PyTypingTypeProvider extends PyTypeProviderWithCustomContext<
|
||||
return returnType;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static PyType removeNarrowedTypeIfNeeded(@Nullable PyType type) {
|
||||
if (type instanceof PyNarrowedType pyNarrowedType) {
|
||||
return PyBuiltinCache.getInstance(pyNarrowedType.getOriginal()).getBoolType();
|
||||
}
|
||||
else {
|
||||
return type;
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static PyType wrapInCoroutineType(@Nullable PyType returnType, @NotNull PsiElement resolveAnchor) {
|
||||
final PyClass coroutine = PyPsiFacade.getInstance(resolveAnchor.getProject()).createClassByQName(COROUTINE, resolveAnchor);
|
||||
|
||||
@@ -6,7 +6,6 @@ import com.intellij.navigation.ItemPresentation;
|
||||
import com.intellij.openapi.util.Key;
|
||||
import com.intellij.openapi.util.Ref;
|
||||
import com.intellij.openapi.vfs.VirtualFile;
|
||||
import com.intellij.psi.PsiComment;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiReference;
|
||||
import com.intellij.psi.search.LocalSearchScope;
|
||||
@@ -17,13 +16,11 @@ import com.intellij.psi.util.*;
|
||||
import com.intellij.ui.IconManager;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.ObjectUtils;
|
||||
import com.intellij.util.PlatformIcons;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.JBIterable;
|
||||
import com.jetbrains.python.PyNames;
|
||||
import com.jetbrains.python.PyStubElementTypes;
|
||||
import com.jetbrains.python.ast.impl.PyUtilCore;
|
||||
import com.jetbrains.python.codeInsight.controlflow.ControlFlowCache;
|
||||
import com.jetbrains.python.codeInsight.controlflow.ScopeOwner;
|
||||
import com.jetbrains.python.codeInsight.dataflow.scope.ScopeUtil;
|
||||
@@ -151,7 +148,7 @@ public class PyFunctionImpl extends PyBaseElementImpl<PyFunctionStub> implements
|
||||
for (PyTypeProvider typeProvider : PyTypeProvider.EP_NAME.getExtensionList()) {
|
||||
final Ref<PyType> returnTypeRef = typeProvider.getReturnType(this, context);
|
||||
if (returnTypeRef != null) {
|
||||
return derefType(returnTypeRef, typeProvider);
|
||||
return PyTypingTypeProvider.removeNarrowedTypeIfNeeded(derefType(returnTypeRef, typeProvider));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,7 +162,7 @@ public class PyFunctionImpl extends PyBaseElementImpl<PyFunctionStub> implements
|
||||
inferredType = getReturnStatementType(context);
|
||||
}
|
||||
}
|
||||
return PyTypingTypeProvider.toAsyncIfNeeded(this, inferredType);
|
||||
return PyTypingTypeProvider.removeNarrowedTypeIfNeeded(PyTypingTypeProvider.toAsyncIfNeeded(this, inferredType));
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user