mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Merge remote branch 'origin/master'
This commit is contained in:
@@ -52,6 +52,10 @@ public class PyControlFlowBuilder extends PyRecursiveElementVisitor {
|
||||
public void visitPyClass(final PyClass node) {
|
||||
// Create node and stop here
|
||||
myBuilder.startNode(node);
|
||||
final ReadWriteInstruction instruction = ReadWriteInstruction.newInstruction(myBuilder, node, node.getName(),
|
||||
ReadWriteInstruction.ACCESS.WRITE);
|
||||
myBuilder.addNode(instruction);
|
||||
myBuilder.checkPending(instruction);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -64,7 +68,8 @@ public class PyControlFlowBuilder extends PyRecursiveElementVisitor {
|
||||
public void visitPyCallExpression(final PyCallExpression node) {
|
||||
final PyExpression callee = node.getCallee();
|
||||
// Flow abrupted
|
||||
if (callee != null && "sys.exit".equals(PyUtil.getReadableRepr(callee, true))) {
|
||||
if (callee != null && ("sys.exit".equals(PyUtil.getReadableRepr(callee, true)) ||
|
||||
"fail".equals(callee.getName()))) {
|
||||
callee.accept(this);
|
||||
for (PyExpression expression : node.getArguments()) {
|
||||
expression.accept(this);
|
||||
|
||||
@@ -170,7 +170,7 @@ public class PythonLanguageLevelPusher implements FilePropertyPusher<LanguageLev
|
||||
}
|
||||
|
||||
private static void setNoSizeLimitRecursive(VirtualFile file) {
|
||||
file.putUserData(SingleRootFileViewProvider.ourNoSizeLimitKey, Boolean.TRUE);
|
||||
SingleRootFileViewProvider.doNotCheckFileSizeLimit(file);
|
||||
for (VirtualFile child : file.getChildren()) {
|
||||
setNoSizeLimitRecursive(child);
|
||||
}
|
||||
@@ -180,4 +180,4 @@ public class PythonLanguageLevelPusher implements FilePropertyPusher<LanguageLev
|
||||
FORCE_LANGUAGE_LEVEL = languageLevel;
|
||||
pushLanguageLevel(project);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -109,15 +109,17 @@ public class PyMoveClassOrFunctionDelegate extends MoveHandlerDelegate {
|
||||
doMove(project, new PsiElement[] {element}, null, null);
|
||||
return true;
|
||||
}
|
||||
if (element instanceof PsiNamedElement) {
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static PsiNamedElement getElementToMove(@NotNull PsiElement element) {
|
||||
final PsiNamedElement result = PsiTreeUtil.getParentOfType(element, PsiNamedElement.class, false, PyClass.class, PyFunction.class);
|
||||
if (result instanceof PyFunction && ((PyFunction)result).isTopLevel() ||
|
||||
result instanceof PyClass && ((PyClass)result).isTopLevel()) {
|
||||
return result;
|
||||
if (element instanceof PyFunction && ((PyFunction)element).isTopLevel() ||
|
||||
element instanceof PyClass && ((PyClass)element).isTopLevel()) {
|
||||
return (PsiNamedElement)element;
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -26,16 +26,19 @@
|
||||
<line>30</line>
|
||||
<description>This code is unreachable</description>
|
||||
</problem>
|
||||
|
||||
<problem>
|
||||
<file>unreachable.py</file>
|
||||
<line>36</line>
|
||||
<description>This code is unreachable</description>
|
||||
</problem>
|
||||
|
||||
<problem>
|
||||
<file>unreachable.py</file>
|
||||
<line>46</line>
|
||||
<description>This code is unreachable</description>
|
||||
</problem>
|
||||
<problem>
|
||||
<file>unreachable.py</file>
|
||||
<line>69</line>
|
||||
<description>This code is unreachable</description>
|
||||
</problem>
|
||||
</problems>
|
||||
|
||||
+12
-2
@@ -42,8 +42,18 @@ def f():
|
||||
# PY-3869
|
||||
def f(x):
|
||||
try:
|
||||
from foo import bar
|
||||
from foo import bar #pass
|
||||
except ImportError:
|
||||
def bar(x):
|
||||
return x
|
||||
return bar(x)
|
||||
return bar(x)
|
||||
|
||||
# PY-3919
|
||||
def f(x):
|
||||
try:
|
||||
from foo import Bar #pass
|
||||
except ImportError:
|
||||
class Bar(object):
|
||||
pass
|
||||
return Bar()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user