mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
fixed failed tests. (builtins module in compatibility inspection)
This commit is contained in:
@@ -10,7 +10,6 @@ import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.PsiFile;
|
||||
import com.intellij.psi.PsiReference;
|
||||
import com.jetbrains.python.PyBundle;
|
||||
import com.jetbrains.python.actions.ReplaceBuiltinsQuickFix;
|
||||
import com.jetbrains.python.psi.*;
|
||||
import com.jetbrains.python.psi.impl.PyQualifiedName;
|
||||
import com.jetbrains.python.validation.CompatibilityVisitor;
|
||||
@@ -171,14 +170,14 @@ public class PyCompatibilityInspection extends PyInspection {
|
||||
LanguageLevel languageLevel = myVersionsToProcess.get(i);
|
||||
for (PyImportElement importElement : importElements) {
|
||||
final PyQualifiedName qName = importElement.getImportedQName();
|
||||
if (qName != null) {
|
||||
if (qName != null && !qName.matches("builtins") && !qName.matches("__builtin__")) {
|
||||
moduleName = qName.toString();
|
||||
if (UnsupportedFeaturesUtil.MODULES.get(languageLevel).contains(moduleName))
|
||||
len = appendLanguageLevel(message, len, languageLevel);
|
||||
}
|
||||
}
|
||||
}
|
||||
commonRegisterProblem(message, " not have module " + moduleName, len, node, new ReplaceBuiltinsQuickFix());
|
||||
commonRegisterProblem(message, " not have module " + moduleName, len, node, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.jetbrains.python.PyNames;
|
||||
import com.jetbrains.python.PyTokenTypes;
|
||||
import com.jetbrains.python.actions.*;
|
||||
import com.jetbrains.python.psi.*;
|
||||
import com.jetbrains.python.psi.impl.PyQualifiedName;
|
||||
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
@@ -99,6 +100,36 @@ public abstract class CompatibilityVisitor extends PyAnnotator {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitPyImportStatement(PyImportStatement node) {
|
||||
super.visitPyImportStatement(node);
|
||||
PyImportElement[] importElements = node.getImportElements();
|
||||
int len = 0;
|
||||
String moduleName = "";
|
||||
StringBuilder message = new StringBuilder(myCommonMessage);
|
||||
for (int i = 0; i != myVersionsToProcess.size(); ++i) {
|
||||
LanguageLevel languageLevel = myVersionsToProcess.get(i);
|
||||
for (PyImportElement importElement : importElements) {
|
||||
final PyQualifiedName qName = importElement.getImportedQName();
|
||||
if (qName != null) {
|
||||
if (!languageLevel.isPy3K()) {
|
||||
if (qName.matches("builtins")) {
|
||||
len = appendLanguageLevel(message, len, languageLevel);
|
||||
moduleName = "builtins";
|
||||
}
|
||||
}
|
||||
else {
|
||||
if (qName.matches("__builtin__")) {
|
||||
len = appendLanguageLevel(message, len, languageLevel);
|
||||
moduleName = "__builtin__";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
commonRegisterProblem(message, " not have module " + moduleName, len, node, new ReplaceBuiltinsQuickFix());
|
||||
}
|
||||
|
||||
@Override
|
||||
public void visitPyStarExpression(PyStarExpression node) {
|
||||
super.visitPyStarExpression(node);
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<warning descr="Python version 2.4, 2.5, 2.6, 2.7 do not have module builtins">import builtins</warning>
|
||||
<error descr="Python version 2.7 does not have module builtins"><warning descr="Python version 2.4, 2.5, 2.6, 2.7 do not have module builtins">import builtins</warning></error>
|
||||
|
||||
<warning descr="Python version 3.0, 3.1 do not have module __builtin__">import __builtin__</warning>
|
||||
@@ -28,6 +28,7 @@ public class PyCompatibilityInspectionTest extends PyLightFixtureTestCase {
|
||||
}
|
||||
|
||||
public void testImportStatement() {
|
||||
setLanguageLevel(LanguageLevel.PYTHON27);
|
||||
doTest();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user